以交互模式进入已退出的docker容器

以交互模式进入已退出的docker容器

我有一个已退出的 docker 容器Exited (1) 8 seconds ago。我想以交互模式(bash 模式)进入它来检查哪里出了问题,我该怎么做?

我知道我可以直接启动一个图像(docker run -it IMAGE_NAME /bin/bash)进入交互模式。

如何重新运行已退出的容器并进入交互模式?docker start -a CONTAINERID会导致它再次退出 1。因为有一个默认启动的自动命令,在Dockerfileas中指定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

相关内容