python操作docker

docker 自动化实现方式:

Docker SDK for Python是docker支持python调用docker的一个第三方包

  • 安装docker第三方包

    pip3 install docker

docker-py教基础程

import docker
client = docker.from_env()  # 创建一个docker客户端
client.containers.run(image_name,   # image_name 是我们docker镜像的name 
                      detach=True,   # detach=True,是docker run -d 后台运行容器
                      remove=True,  # 容器如果stop了,会自动删除容器
                      tty=True,      # 分配一个tty  docker run -t
                      volumes=volumes, # 与宿主机的共享目录, docker run -v /var/:/opt
                      command=command)  # The command to run in the container

这里我们启动一个tar镜像[^本地大的包],这时执行docker images 就可以看到tar已经转成docker镜像

docker load --input /home/uos/test/mytest.tar

docker images

我们需要记住docker images返回的REPOSITORY 和 TAG 来组成image_name = 'mytest:v1'

image

有了这个信息,我们就可以启动docker 容器了

container = client.containers.run( 'mytest:v1', detach=True, remove=True, tty=True, volumes=['/home/uos/test/:/opt'], command='/bin/bash')  # 返回一个容器对象。有了这个容器对象我们就可以操作容器了

操作容器对象

  • 在容器中执行命令

    cmd = 'ls'
    code,stream = container.exec_run(cmd, stream=True)  # 返回一个元祖 (exit_code, output)   stream就是我们的ls的返回值,但是需要decode一下
    s = ''   
    for x in stream:
        print(x.decode(), end='')
        s += x.decode()
        logger.info(s)
    
  • 停止、启动容器

    container.stop()
    container.start()
    
  • 当然还有很多方法~,大家就自己学习

posted @ 2022-06-23 14:50  Tarzen  阅读(2370)  评论(0编辑  收藏  举报