我正在使用docker 1.1.0版本,由systemd使用命令行/usr/bin/docker -d
启动,并试图:
- 运行容器
- 停止docker服务
- 重新启动docker服务(使用systemd或手动,在命令行指定
--restart=true
) - 查看我的容器是否仍在运行
根据我对文档的理解,我的容器应该重新启动。但事实并非如此。其面向公共端口无响应,docker ps
未显示
docker ps -a
显示我的容器为空状态:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb0d05b4e0d9 mildred/p2pweb:latest node server-cli.js - 7 minutes ago 0.0.0.0:8888->8888/tcp jovial_ritchie
...
当我尝试docker restart cb0d05b4e0d9
时,我得到一个错误:
Error response from daemon: Cannot restart container cb0d05b4e0d9: Unit docker-cb0d05b4e0d9be2aadd4276497e80f4ae56d96f8e2ab98ccdb26ef510e21d2cc.scope already exists.
2014/07/16 13:18:35 Error: failed to restart one or more containers
我总是可以使用相同的基本镜像使用docker run ...
重新创建一个容器,但是我如何确保我的运行容器将重新启动,如果docker重新启动。是否存在一个解决方案,即使docker不能正常停止(想象我从服务器上拔下电源插头)。
谢谢
正如评论中提到的,你可能要寻找的容器标志是--restart=always
,这将指示Docker,除非你明确地将容器docker stop
,否则Docker应该在Docker死亡或容器死亡的任何时候启动它。