【Python】Python调用Docker API

介绍

用于 Docker 引擎 API 的 Python 库。它允许您执行docker命令所做的任何事情,但可以在 Python 应用程序中执行——运行容器、管理容器、管理 Swarm 等。

docker-py git项目地址.

安装

pip install docker

如果您打算通过 TLS 连接到 docker 主机,docker[tls]请改为添加您的要求,或使用 pip 安装:

pip install docker[tls]

用法

1、使用默认套接字或环境中的配置连接到 Docker:
import docker
client = docker.from_env()
2、远程连接Docker

前提是远程机器上的docker开启远程服务,配置参考下面的链接:
【docker】开启远程docker服务的方法

import docker
client = docker.APIClient(base_url='tcp://ip:2375')  #这个ip是指上面操作中配置了远程访问功能docker的机器ip
3、run containers运行容器
container = client.containers.run(
    image="alpine", 
    command="sh -c 'echo \"hello\" > /insidecontainer/test'",
    volumes=["somevolume:/insidecontainer"],
    detach=True
)

常用的参数:

  • image选择的镜像运行容器,必选
  • command:docker run的时候执行的命令
  • volumes:传入挂载目录,列表,可传入多个挂载目录
    规则是: [“docker-path:local-path”]
  • detach:参数为True时,它将启动容器,并立即返回一个对象
  • environment:配置容器内部环境变量,格式[“SOMEVARIABLE=xxx”]

其他参数,参考git项目api源码:

4、进入已启动容器中执行命令
exec_output = container.exec_run("cat /test")
5、kill并移除容器
container.kill()
container.remove()
6、从容器中拷贝文件到本地-get_archive

获取到的文件是个tar包

        with tempfile.NamedTemporaryFile() as destination:
            strm, stat = self.client.get_archive(ctnr, '/vol1/data.txt')
            for d in strm:
                destination.write(d)
            destination.seek(0)
6、本地向容器内拷贝文件-put_archive
self.client.put_archive(ctnr, '/vol1', test_tar)
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值