今天收到supervisord报警,说是有docker进程异常退出,而且无法启动,这个里面有两个问题:
1. 为啥会异常退出?
2. 为啥无法启动
先看第二个问题,经过排查,原来是由于docker 容器进程挂掉后,会留在docker ps -a里面,提示有重名docker在运行,这个我们需要手动干掉
docker ps -a | grep Exit | awk '{print $1}' | xargs -i docker stop {}
另外,检查supervisord的配置,docker命令后面有没有加 –rm,这样可以确保docker进程在退出后也会自动删除。
经过排查,–rm也是加了的,可是为啥还是会不能自动重启呢,继续观察。
for owncloud cadvisor registry reg-ui
[program:owncloud]
priority=1
command=/usr/bin/docker run --rm -p 83:80 -v /data/owncloud/data:/var/www/html owncloud:latest
autostart=true
autorestart=true
startretries=3
stopsignal=TERM
stopasgroup=true ; 是否想UNIX进程组发送结束信号 (default false)
killasgroup=true ; SIGKILL UNIX 进
[program:cadvisor]
priority=1
command=/usr/bin/docker run --rm --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=4080:8080 --name=cadvisor google/cadvisor:latest
autostart=true
autorestart=true
startretries=3
stopsignal=TERM
stopasgroup=true ; 是否想UNIX进程组发送结束信号 (default false)
killasgroup=true ; SIGKILL UNIX 进
[program:registry]
priority=1
command=/usr/bin/docker run --rm -p 5000:5000 --name registry -v /data/docker/reg.ops.ac.cn/registry/data:/var/lib/registry -v /data/docker/reg.ops.ac.cn/registry/data:/tmp/registry registry:2.3.1
directory=/data/docker/reg.ops.ac.cn/registry
autostart=true
autorestart=true
startretries=3
stopsignal=TERM
stopasgroup=true ; 是否想UNIX进程组发送结束信号 (default false)
killasgroup=true ; SIGKILL UNIX 进
[program:reg-ui]
priority=1
#command=/usr/bin/docker run --rm -p 4050:8080 --name registry-web --link registry -e REGISTRY_URL=http://reg.ops.ac.cn:5000/v2 -e REGISTRY_BASIC_AUTH="b3BzOjEyMzEyMw==" -e REGISTRY_TRUST_ANY_SSL=true -e REGISTRY_NAME=reg.ops.ac.cn:5000 hyper/docker-registry-web
command=/usr/bin/docker run --rm -p 4050:8080 --name registry-web -e REGISTRY_URL=http://reg.ops.ac.cn:5000/v2 -e REGISTRY_BASIC_AUTH="b3BzOjEyMzEyMw==" -e REGISTRY_TRUST_ANY_SSL=true -e REGISTRY_NAME=reg.ops.ac.cn:5000 hyper/docker-registry-web
directory=/data/docker/reg-ui
autostart=true
autorestart=true
startretries=3
stopsignal=TERM
stopasgroup=true ; 是否想UNIX进程组发送结束信号 (default false)
killasgroup=true ; SIGKILL UNIX 进