我正在运行CoreOS Stable 776.4.0。
我想让容器一直运行。但我无法让它发挥作用。当我希望容器在被杀死时重启。但事实并非如此。我之前得到了它。但我不记得我是怎么做到的。
请帮助我!
我通过docker stop proxy
Restart=always
将持续停止并启动容器。
这是我的系统单元文件。
[Unit]
Description=nginx reverse proxy
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
Restart=on-failure
ExecStartPre=-/usr/bin/docker stop proxy
ExecStartPre=-/usr/bin/docker rm proxy
ExecStart=/usr/bin/docker run -d --name proxy -p 80:80 -v
/var/run/docker.sock:/tmp/docker.sock:ro zhex900/nginx-proxy
[Install]
WantedBy=multi-user.target
答案 0 :(得分:1)
你当前的问题是:
ExecStart=/usr/bin/docker run -d --name proxy -p 80:80 -v
/var/run/docker.sock:/tmp/docker.sock:ro zhex900/nginx-proxy
您正在将-d
选项传递给docker客户端,这意味着"在后台启动容器并立即返回"。由于客户端退出,systemd将其解释为失败并尝试重新启动服务。
最简单的解决方案是从命令行中删除-d
。
另一种选择是不使用systemd,并简单地使用docker run --restart=always ...
启动容器,这将导致Docker确保容器正在运行,即使重启后也是如此。
答案 1 :(得分:0)
对不起,我问了一个愚蠢的问题。问题是我将容器作为守护进程运行。删除-d
解决了问题。
ExecStart=/usr/bin/docker run --name proxy -p 80:80 \
-v /var/run/docker.sock:/tmp/docker.sock:ro zhex900/nginx-proxy