介绍
用于 Docker 引擎 API 的 Python 库。它允许您执行docker命令所做的任何事情,但可以在 Python 应用程序中执行——运行容器、管理容器、管理 Swarm 等。
安装
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”]
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)