根据docker events事件执行指定脚本
hub.docker.com https://hub.docker.com/r/adockero/events-script
// 简单使用,自带根据network事件执行nginx名称的容器重启配置
docker run --restart=always -d --privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
--name events-script \
adockero/events-script
启动容器触发network事件
docker run -i --rm --network host nginx ls
一键组合测试命令--常规
docker rm -f events-script || \
docker run --restart=always -d --privileged -v /var/run/docker.sock:/var/run/docker.sock --name events-script adockero/events-script && \
docker run -i --rm --network host nginx ls && \
docker logs events-script && \
docker rm -f events-script
一键组合测试命令--带pull
docker rm -f events-script || \
docker pull adockero/events-script && \
docker run --restart=always -d --privileged -v /var/run/docker.sock:/var/run/docker.sock --name events-script adockero/events-script && \
docker run -i --rm --network host nginx ls && \
docker logs events-script && \
docker rm -f events-script
docker logs -f adockero/events-script
docker-scripts/events-script.ini文件
如下默认nginx重读配置的配置
[nginxReload]
args='-f "type=network" -f "event=connect"'
command='sleep 2 && docker exec -i nginx nginx -t && docker exec -i nginx nginx -s reload'
1、[test] 头必须英文无空格
2、只有两个配置参数。执行配置脚本是 /docker-scripts/fifo_event.sh
3、args是docker events的命令参数
4、command是事件触发时只需的脚本,可以使用docker命令,多个命令用&&
5、如果是一个容器重新创建,就需要sleep等待容器能联通后在重启nginx
1、如果出现无法重启的问题,请即使去github的issues反馈