美文网首页
采用Python脚本部署Docker镜像

采用Python脚本部署Docker镜像

作者: elef | 来源:发表于2019-03-07 14:48 被阅读163次

    上一篇手工部署私有镜像太麻烦,CI来帮忙谈到手工部署Docker镜像的繁琐,仅仅一个小小的修改就需要经历5个步骤:

    1、编写代码
    2、制作镜像
    3、推送镜像到私有镜像库
    4、更新服务器本地镜像
    5、重启服务器容器

    在V2EX上征求了很多V友的意见,大家都提到了CI/CD,启用Jenkins等等。但是我还是想尝试下使用Python脚本的方式。

    镜像仓库

    首先在阿里云镜像服务控制台下创建一个镜像仓库,接下来就是处理前三步,将代码转镜像,推送到镜像仓库。

    创建Python脚本

    自动化脚本文件 push.py

    import os
    #定义镜像名称
    imagename = 'djm/appdemo1'
    registry_username = input("输入镜像库帐号:")
    registry_password = input("输入镜像库密码: ")
    #构建镜像
    cmd_build = 'docker build -t {} .'.format(imagename)
    os.system(cmd_build)
    
    #开始推送镜像
    cmd_login = 'docker login --username={} --password={} registry.cn-beijing.aliyuncs.com'.format(registry_username,registry_password)
    cmd_tag = 'docker tag {}:latest registry.cn-beijing.aliyuncs.com/{}:latest'.format(imagename,imagename)
    cmd_push = 'docker push registry.cn-beijing.aliyuncs.com/{}:latest'.format(imagename)
    os.system(cmd_login)
    os.system(cmd_tag)
    os.system(cmd_push)
    

    然后运行 python3 push.py

    服务器上部署Docker镜像

    接下来就只剩下两步了:

    4、更新服务器本地镜像
    5、重启服务器容器

    在开发机器机器上一般都是运行类似docker run -it --rm -p 5000:80 --name appdemo1_sample djm/appdemo1这样的语句来启动容器,但是在正式服务器还是采用Docker-Compose比较适用一些。

    如果服务器上之前没有安装过docker-compose,首先还是先安装一下:

    $ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    #如果有执行权限问题执行下面的语句
    $sudo chmod +x /usr/local/bin/docker-compose
    #测试安装是否成功
    $ docker-compose --version
    

    编排脚本 docker-compose.yml

    appdemo1: 
        image: registry.cn-beijing.aliyuncs.com/djm/appdemo1:latest
        ports:
          - "5000:80"
        restart: always
        container_name: appdemo1_container
    

    自动化脚本文件 pull.py

    import os
    #定义镜像名称
    imagename = 'registry.cn-beijing.aliyuncs.com/djm/appdemo1:latest'
    cmd_pull = 'docker pull {}'.format(imagename)
    cmd_down = 'docker-compose down'
    cmd_up = 'docker-compose up'
    
    os.system(cmd_pull)
    os.system(cmd_down)
    os.system(cmd_up)
    
    

    然后运行 python3 pull.py

    这样整体流程由之前的5步精简为3步

    1、编写代码
    2、构建镜像,推送镜像到镜像库 python3 push.py
    3、服务器上拉去镜像库最新镜像,重启Docker容器 python3 pull.py

    源码地址:https://github.com/daijinming/PythonScript 下的 chapter1 目录

    相关文章

      网友评论

          本文标题:采用Python脚本部署Docker镜像

          本文链接:https://www.haomeiwen.com/subject/iuucpqtx.html