考虑:
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 -a -i `docker ps -q -l`
解释:
docker启动一个容器(需要名称或ID) -连接到容器 -i交互模式 docker ps列出容器 -q只列出容器id -l只列出上次创建的容器
其他回答
如果你想继续使用一个已知名称的Docker容器:
docker start `docker ps -a -q --filter "name=elas"`
使用——privileged标志运行容器。
docker run -it --privileged ...
如果你只想启动一个状态为“Exited”的容器,只需输入:
sudo docker start container_name
没有sudo。查看更多
docker start container_name
如果容器名称不起作用,则将名称替换为容器id
如果你想在多个易于记忆的命令中完成:
列出停止的容器:
Docker ps a
复制你想要附加的容器的名称或容器id,并以以下方式开始容器:
Docker start -i <name/id> .使用实例
-i标志告诉docker附加到容器的stdin。
如果容器开始时没有连接到一个交互式shell,你需要这样做来运行一个shell:
docker start <name/id>
docker exec -it <name/id> /bin/sh
/bin/sh是通常可用于基于alpine的映像的shell。
您可以在现有容器退出后重新启动它,而您所做的更改仍然存在。
docker start `docker ps -q -l` # restart it in the background
docker attach `docker ps -q -l` # reattach the terminal & stdin