安裝模塊
$ pip3 install docker
運(yùn)行一個(gè)容器计螺,并執(zhí)行容器中的一個(gè)命令
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}
將容器的 TCP3306
端口映射到宿主機(jī)的3300
端口
name
指定了容器的名稱
detach=True
后臺(tái)運(yùn)行奈嘿,此時(shí)這個(gè) Python 程序不用被掛起
container
是被創(chuàng)建容器的對象
操作單個(gè)容器,并打印特定容器的日志
您還可以對單個(gè)容器執(zhí)行操作。此示例打印給定其ID的容器的日志尘分。您需要在運(yùn)行代碼之前修改代碼以更改容器的硬編碼ID以打印日志排拷。
import docker
client = docker.from_env()
container = client.containers.get('f1064a8a4c82')
print(container.logs())
停止所有正在運(yùn)行的容
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)
拉取鏡像當(dāng)本地鏡像倉庫
import docker
client = docker.from_env()
image = client.images.pull("alpine")
print(image.id)