考虑:
docker run -it centos /bin/bash
我按Ctrl+ D退出。
我想继续运行此容器,但发现不能。
唯一的方法是
docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash
我对吗?有没有更好的方法?(我正在使用docker 0.8.0。)
考虑:
docker run -it centos /bin/bash
我按Ctrl+ D退出。
我想继续运行此容器,但发现不能。
唯一的方法是
docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash
我对吗?有没有更好的方法?(我正在使用docker 0.8.0。)
Answers:
您可以在现有容器退出后重新启动,并且所做的更改仍然存在。
docker start `docker ps -q -l` # restart it in the background
docker attach `docker ps -q -l` # reattach the terminal & stdin
docker start `docker ps -q -l` && docker attach `docker ps -q -l`
docker start -i $(docker ps -q -l)
。;-)命名可以帮助更好地控制选择哪个容器。-l
得到最后一个,确定...
`docker ps -q -l`
是一个扩展。将使用创建的最后一个(-l)docker容器的ID替换它。-q仅抑制通常由输出的其他信息(床头ID) `docker ps`
。---- 注意: 反引号不是引号,它具有非常特殊的含义。你反引号之间键入的所有内容进行评估(执行)由壳主指令之前- unix.stackexchange.com/questions/27428/...
Created...
,无法从中启动docker start ...
。但是,可以使用docker restart ...
-l
仅获取“最新”泊坞窗。如果您像我一样,并且docker ps -a
显示了需要启动的多个功能,则可以通过将上面的命令更改为来重新启动其中的“全部”(-a)docker start `docker ps -q -a`
。-q
只是使其“安静”(而不是输出日志记录)。
用:
docker start $(docker ps -a -q --filter "status=exited")
这将启动所有处于退出状态的容器。
docker exec -it <container-id> /bin/bash
这将连接到特定的容器。
docker exec -it <container id> /bin/bash
(或只是bash)。
如果要使用多个易于记忆的命令进行操作:
docker ps -a
docker start -i <name/id>
该-i
标志告诉docker附加到容器的stdin。
如果容器不是以要连接的交互式外壳启动的,则需要执行以下操作来运行外壳:
docker start <name/id>
docker exec -it <name/id> /bin/sh
在/bin/sh
通常可与基于高山图像的壳。
Error response from daemon: Container <id> is not running
如果要精确地继续使用一个已知名称的Docker容器:
docker start `docker ps -a -q --filter "name=elas"`
docker start <name>
在<name>是容器名称的地方运行。至少使用docker v19.03.8
跟着这些步骤:
如果您有一个命名容器,则可以通过运行来启动它
docker container start container_name
其中container_name是创建容器时必须提供的容器名称。如果container_name
未命名容器,则可以用容器ID 替换。可以通过运行以下命令找到容器ID:
docker ps -a
这些命令适用于任何容器(不仅是最后一个退出的容器)。即使您的系统重新启动后,这种方式仍然可以使用。为此,这些命令将使用“容器ID”。
脚步:
使用此命令列出所有docker,并记下要重新启动的容器的容器ID:
docker ps -a
使用容器ID启动容器:
docker start <container_id>
附加并运行容器:
docker attach <container_id>
注意:适用于linux
按名字
sudo docker start bob_the_container
或按ID
sudo docker start aa3f365f0f4e
这将重新启动已停止的容器,使用-i附加容器的STDIN或代替-i可以附加到容器会话(如果使用-it运行)
sudo docker attach bob_the_container
docker start `docker ps -a | awk '{print $1}'`
这将启动所有处于“已退出”状态的容器