我有一个已退出的 docker 容器Exited (1) 8 seconds ago
。我想以交互模式(bash 模式)进入它来检查哪里出了问题,我该怎么做?
我知道我可以直接启动一个图像(docker run -it IMAGE_NAME /bin/bash
)进入交互模式。
如何重新运行已退出的容器并进入交互模式?docker start -a CONTAINERID
会导致它再次退出 1。因为有一个默认启动的自动命令,在Dockerfile
as中指定CMD java ...
答案1
您可以使用命令将容器的当前状态转换为图像docker commit
。
例如,如果你以这种方式运行原始图像
$ docker run ubuntu touch what_went_wrong_file
你可以用它docker ps
来查看容器的名称
$ docker ps -a -n 1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abcdef012345 ubuntu "touch what_went_wro…" 42 seconds ago Exited (0) 23 seconds ago ron_pringadi
然后提交更改
$ docker commit abcdef012345 what_went_wrong_image # or
$ docker commit ron_pringadi what_went_wrong_image
现在您有了图像,您可以在新容器中运行它并探索其内容
$ docker run -it what_went_wrong_image bash
root@01234abcdef:/# ls -l what_went_wrong_file
-rw-r--r-- 1 root root 0 Feb 31 24:00 what_went_wrong_file