Watchtower——容器自动更新工具
安装
-
docker-cli
docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower
-
docker-compose
version: "3" services: watchtower: containername: watchtower image: containrrr/watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock
参数解释
/var/run/docker.sock
:把docker的守护进程映射到容器内,使得容器拥有操作docker的权限
使用
-
默认会监控所有正在运行的容器
-
打开自动删除旧镜像选项:在命令后加上
--cleanup
或者-c
docker run -d \ --name watchtower \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --cleanup
或者
docker run -d \ --name watchtower \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c
-
指定要更新的容器:在命令后加上要更新的容器名,用空格分隔
# 指定更新nginx和redis容器名称 docker run -d \ --name watchtower \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ nginx redis
-
设置更新频率(默认五分钟)
- 使用
--interval
或者-i
,以秒为单位
docker run -d \ --name watchtower \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ --interval 3600
- 使用
--schedule
或者-s
,格式为6字段Cron表达式:“秒 分 时 日 月 周"
docker run -d \ --name watchtower \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ --schedule "0 0 2 * * *"
- 使用
-
手动更新一次
docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ --run-once \ aria2-pro
或者
docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -cR \ aria2-pro
Comments NOTHING