暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

docker-compose部署watchtower

2680

好久没更文了,今天跟大家分享一个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自动化部署(Gitea+Drone+Watchtower)。


            【图】来源于网络

            【文】https://hongzx.cn/home/blogShow/252

            Follow

            佛布朗斯基博客

            (佛布朗斯基)我是一只热爱编程的码农,已从事后端开发5年以上,也正因此,在日常工作学习中,会遇到蛮多问题需要解决,我希望透过记录,真实地将问题以及解决方法保存下来,更为高效地解决问题是我的初衷。


             

            文章转载自程序员技术笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论