如何运行现有已停止的容器并进入bash?

lmi*_*asf 10 containers docker

我是Docker的新手,我知道为了运行容器,我可以使用以下命令:

docker run -it --name custom-container-name --hostname custom-hostname image-name bash
Run Code Online (Sandbox Code Playgroud)

上一个命令创建一个名为custom-container-namehostname 的容器custom-hostname,并使用该映像image-name.我知道-it国旗让我可以进入bash.(如果我错了,请纠正我)

现在,我已经停止了这个容器,但我想再次使用它,那么我应该使用什么命令再次使用它的bash打开这个容器,就像我docker run ...第一次创建它时运行命令一样.

小智 11

我认为您遇到的问题是您提供的命令立即退出,并且容器继续运行它需要一个不会退出的命令.我发现保持容器运行的一种方法是使用-d选项,如下所示:

docker run -dt --name custom-container-name --hostname custom-hostname image-name
Run Code Online (Sandbox Code Playgroud)

这应该开始在后台运行作为守护进程.然后你可以在容器中打开一个shell:

docker exec -it custom-container-name /bin/bash
Run Code Online (Sandbox Code Playgroud)

如果映像的默认用户是root(或unset),则应在容器中为您提供root shell.

您可以使用docker inspect来查看图像的详细信息,以查看默认命令和用户是什么:

docker inspect image-name | less
Run Code Online (Sandbox Code Playgroud)

此外,如果您的容器存在,并且其状态为"已退出",则可以启动该容器,然后docker exec按如下方式使用:

docker start custom-container-name
docker exec -it custom-container-name /bin/bash
Run Code Online (Sandbox Code Playgroud)

  • 你的答案是好的,我想你可以使用`docker start custom-container-name`添加,然后`docker exec -it custom-container-name bash`也解决了这个问题. (3认同)