好久没更文了,今天跟大家分享一个docker工具(watchtower),可以检测镜像仓库自动更新docker容器,这样我们可以实现将代码镜像打包推到镜像仓库之后,部署服务器可以同步最新镜像并且重新部署容器。这个工具其实我也找了挺久,因为我之前弄了自动化部署的时候,有一个环节就是重新拉取最新镜像并且重新部署,用的还是ssh方式,多少有点不安全,有了这一个工具就可以完美解决了这个问题,在这里要感谢网友:落叶,这个工具也是他推荐给我的,下面直接分享部署yaml文件。

version: "3"services:watchtower:image: containrrr/watchtowerrestart: alwayscontainer_name: watchtower_composeenvironment:- TZ=Asia/Shanghai # 设置时区- WATCHTOWER_CLEANUP=true # 更新后移除旧的镜像- WATCHTOWER_POLL_INTERVAL=30 # 镜像检测时间间隔30秒volumes:- /var/run/docker.sock:/var/run/docker.sock- /root/.docker/config.json:/config.json- /etc/localtime:/etc/localtime:rocommand: ['docker_go_gin_compose']
下面简单跟大家讲解下各配置项参数项

environment:- TZ=Asia/Shanghai # 设置时区- WATCHTOWER_CLEANUP=true # 更新后移除旧的镜像- WATCHTOWER_POLL_INTERVAL=30 # 镜像检测时间间隔30秒设置了时区是上海时区,同时设置每次更新后移除旧的镜像,这样不会造成过往镜像一直留在服务器,同时设置检测间隔时间30秒,大家可以根据自己需求进行设置。

volumes:- /var/run/docker.sock:/var/run/docker.sock- /root/.docker/config.json:/config.json- /etc/localtime:/etc/localtime:ro由于我的仓库是在阿里云仓库,所以我们需要将/root/.docker/config.json映射进容器config.json文件,这样可以保存我们的镜像仓库登陆令牌,防止拉取镜像失败

command: ['docker_go_gin_compose']这里我们监测容器名为docker_go_gin_compose,会监控这个容器名对应镜像是否有更新,有更新的话,会自动拉取最新镜像重新部署,想要查看容器名,可以通过docker ps -a命令查看
然后我们执行以下命令进行部署
docker-compose up -d
这样我们便完成了部署,后面我会跟大家分享docker自动化部署(Gitea+Drone+Watchtower)。
文章转载自程序员技术笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





