考虑:
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版本。)
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`
- Daniel YC Lindocker start -i $(docker ps -q -l)
。;-) 命名可以帮助更好地控制选择哪个容器。-l
获取最近的一个,好的... - Eric Platon\
docker ps -q -l`是一个扩展。它将被替换为最后创建的(-l) Docker容器的ID。-q仅抑制通常由
`docker ps`输出的其他信息(除了ID)。
注:反引号不是引号符号,它有着非常特殊的意义。你在反引号之间输入的所有内容都将在执行主命令之前由shell解析(执行)。 - bnieland-l
只获取“最新”的 Docker。如果像我一样,docker ps -a
显示需要启动的多个容器,则可以通过将上面的命令更改为 docker start \
docker ps -q -a` 来重新启动它们中的“所有”(-a)。
-q` 仅使其“安静”(不输出日志)。 - Rock Leedocker start -a -i `docker ps -q -l`
说明:
docker start
命令用于启动某个容器(需要指定名称或ID)
-a
参数用于附加到正在运行的容器中
-i
参数用于进入交互式模式
docker ps
命令用于列出所有容器
-q
参数用于仅列出容器ID
-l
参数用于仅列出最近创建的容器
unknown shorthand flag: 'q' in -q
- Ooker使用:
docker start $(docker ps -a -q --filter "status=exited")
这将启动所有处于退出状态的容器。
docker exec -it <container-id> /bin/bash
这将连接到特定的容器。
docker exec -it <container id> /bin/bash
(或者只输入bash)。 - barlop如果你想用多个容易记忆的命令来完成:
docker ps -a
docker start -i <name/id>
标志 -i
告诉 docker 附加到容器的标准输入。
如果容器没有使用交互式 shell 启动,需要执行以下操作以运行 shell:
docker start <name/id>
docker exec -it <name/id> /bin/sh
/bin/sh
是通常与基于alpine的镜像一起提供的shell。
如果你在上面启动容器时遇到立即退出的问题,可以使用以下命令重新运行并进入交互式shell。这里需要输入镜像名称,而不是容器名称。因为重启没有起作用,唯一的调试方式是删除并再次运行它。你将进入一个shell,在那里你可以尝试运行Dockerfile中的CMD命令以查看其输出或调试为什么容器会立即退出。
docker rm <name/id>
docker run -it --entrypoint /bin/sh <image-name> -s
如果您想要启动一个已知名称的Docker容器,请执行以下操作:
docker start `docker ps -a -q --filter "name=elas"`
docker start <name>
,其中<name>是您的容器名称。至少使用docker v19.03.8。 - Don Foumare如果您有一个命名的容器,那么可以通过运行以下命令来启动它
docker container start container_name
其中container_name是在创建容器时必须提供的容器名称。如果未命名容器,则可以将container_name
替换为容器ID。可以通过运行以下命令来查找容器ID:
docker ps -a
这些命令适用于任何容器(不仅限于最近退出的容器)。
即使您的系统重启后,这种方法也可以使用。
为此,这些命令将使用“容器ID”。
步骤:
通过使用以下命令列出所有容器,并记下要重新启动的容器的容器ID:
docker ps -a
使用容器ID启动容器:
docker start <container_id>
附加并运行容器:
docker attach <container_id>
注意:仅适用于Linux
如果您只想启动状态为“Exited”的容器,只需键入:
sudo docker start container_name
不需要sudo。 查看更多
docker start container_name
sudo docker start bob_the_container
或通过Id
sudo docker start aa3f365f0f4e
此命令可重启已停止的容器,使用“-i”选项来附加容器的标准输入(STDIN), 或者您可以附加到容器会话(如果运行时使用了“-it”而不是“-i”选项)。
sudo docker attach bob_the_container