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

Ron*_*adi 5 docker

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

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

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

dar*_*arw 2

您可以使用命令将容器的当前状态转换为镜像docker commit

\n

例如,如果这是您运行原始图像的方式

\n
$ docker run ubuntu touch what_went_wrong_file\n
Run Code Online (Sandbox Code Playgroud)\n

您可以用来docker ps查看容器的名称

\n
$ docker ps -a -n 1 \nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES\nabcdef012345        ubuntu              "touch what_went_wro\xe2\x80\xa6"   42 seconds ago      Exited (0) 23 seconds ago                       ron_pringadi\n
Run Code Online (Sandbox Code Playgroud)\n

然后提交更改

\n
$ docker commit abcdef012345 what_went_wrong_image # or\n$ docker commit ron_pringadi what_went_wrong_image\n
Run Code Online (Sandbox Code Playgroud)\n

现在您已经有了一个映像,您可以在新容器中运行它并探索其内容

\n
$ docker run -it what_went_wrong_image bash\nroot@01234abcdef:/# ls -l what_went_wrong_file\n-rw-r--r-- 1 root root 0 Feb 31 24:00 what_went_wrong_file\n
Run Code Online (Sandbox Code Playgroud)\n