Python 使用Docker Engine SDK和Docker API

安装模块

$ pip3 install docker

运行一个容器,并执行容器中的一个命令

import docker
client = docker.from_env()
r = client.containers.run("alpine", ["echo", "hello", "world"])
print(str(r, encoding='utf-8'))

端口映射

container = client.containers.run('mysql/mysql-server:5.7',ports={'3306/tcp': 3300}, auto_remove=True, name='shark_mysql',
detach=True)

# 查看容器对象的方法和属性
print(dir(container))

print(container.short_id)

{'3306/tcp': 3300} 将容器的 TCP 3306 端口映射到宿主机的 3300 端口
name 指定了容器的名称
detach=True 后台运行,此时这个 Python 程序不用被挂起
container 是被创建容器的对象


操作单个容器,并打印特定容器的日志

您还可以对单个容器执行操作。此示例打印给定其ID的容器的日志。您需要在运行代码之前修改代码以更改容器的硬编码ID以打印日志。

import docker
client = docker.from_env()
container = client.containers.get('f1064a8a4c82')
print(container.logs())

停止所有正在运行的容

import docker
client = docker.from_env()
for container in client.containers.list():
  container.stop()

列出所有镜像

import docker
client = docker.from_env()
for image in client.images.list():
  print(image.id)

拉取镜像当本地镜像仓库

import docker
client = docker.from_env()
image = client.images.pull("alpine")
print(image.id)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容