User-Profile-Image
hankin
  • 5
  • centos7
  • docker
  • mysql
  • PostgreSQL
  • git/gitlab
  • ELK
  • python
    • python-Tornado
    • python-django
  • redis
  • nginx
  • kvm
  • proxmox
  • mongo
  • kubernetes
  • prometheus
  • GlusterFs
  • nfs
  • freeswitch
  • httpd
  • shell脚本
  • linux
  • fastdfs
  • nextcloud
  • openssl
  • openvpn
  • rabbitmq
  • sqlite
  • svn
  • java
  • ubuntu
  • vue2
  • wordpress
  • php
  • IOT物联网
  • 项目
  • 故障处理
  • 树莓派
  • 博客存档
  • 未分类
  • 杂项
  • #1742(无标题)
  • 新视野
  • 分类
    • 项目
    • 树莓派
    • 杂项
    • 未分类
    • 新视野
    • 故障处理
    • 博客存档
    • wordpress
    • vue2
    • ubuntu
    • svn
    • sqlite
    • shell脚本
    • redis
    • rabbitmq
    • python-django
    • python
    • proxmox
    • prometheus
    • PostgreSQL
    • php
    • openvpn
    • openssl
    • nginx
    • nfs
    • nextcloud
    • mysql
    • mongo
    • linux
    • kvm
    • kubernetes
    • java
    • IOT物联网
    • httpd
    • GlusterFs
    • git/gitlab
    • freeswitch
    • fastdfs
    • ELK
    • docker
    • centos7
  • 页面
    • #1742(无标题)
  • 友链
      请到[后台->主题设置->友情链接]中设置。
Help?

Please contact us on our email for need any support

Support
    首页   ›   docker   ›   正文
docker

边缘节点docker容器自动更新方案

2023-07-22 15:27:45
801  0 0

实现原理

1编写shell脚本实现拉取镜像并更新容器
2在节点上设置定时任务,定时执行该脚本
3当镜像更新时,很快便能同步到所有节点

shell脚本内容

#!/bin/bash

#logger部分也可省略

image="xx.com/prod/myimage:latest"
docker_update=<code>docker pull $image</code>

logger "x.sh : start auto update docker ..."
if [[ $docker_update =~ "Downloaded newer image" ]]
    then
        logger "x.sh :  $t test docker_update time "
        docker stop xx && docker rm xx
        docker run -it --net=host --restart=always  --name xx -e xx
        if [ $? -eq 0 ]
        then
            t=<code>date +%y%m%d-%H:%M:%S</code>
            echo $t ok >> /x/x.log
            echo "x.sh : latest update finish "
            logger "x.sh :  $t latest update finish "
        else
            t=<code>date +%y%m%d-%H:%M:%S</code>
            echo $t bad >> /x/x.log
            echo "x.sh : latest update finish "
            logger " $t x.sh latest update bad "
        fi
else
    echo "x.sh : latest is new "
    logger "x.sh :  $t latest is new"
        exit
fi

定时任务

* * * * * sh x.sh 2>&1

特别说明

节点数较多、或者镜像体积较大,首次更新时,宽带可能会占用很高
后期尽量把基础镜像尽量做全,减小每次更新新增内容体积,避免大量节点更新时跑满带宽
评论 (0)

点击这里取消回复。

欢迎您 游客  

Copyright © 2025 网站备案号 : 蜀ICP备2022017747号
smarty_hankin 主题. Designed by hankin
主页
页面
  • #1742(无标题)
博主
tang.show
tang.show 管理员
linux、centos、docker 、k8s、mysql等技术相关的总结文档
210 文章 2 评论 194517 浏览
测试
测试