docker-compose部署watchtower

docker-compose部署watchtower

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

version: "3"
services:
  watchtower:
    image: containrrr/watchtower
    restart: always
    container_name: watchtower_compose
    environment:
      - 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:ro
    command: ['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自动化部署

0条评论

发表评论