概要
試してみたのでサンプルを紹介します
環境
- macOS 10.13.5
- Python 3.6.5
- docker-py 3.4.0
- docker 18.03.1-ce
run する
import docker
client = docker.from_env()
res = client.containers.run("alpine", "echo hello world")
print(res)
バックグラウンド実行 (-d)
import docker
client = docker.from_env()
res = client.containers.run("nginx", detach=True)
print(res)
ポートを expose する (-p)
import docker
client = docker.from_env()
res = client.containers.run("nginx", detach=True, ports={'80/tcp': ('0.0.0.0', 81)})
print(res)
('0.0.0.0', 81)
がホスト側のバインドアドレスとポートになります
環境変数を設定 (-e)
import docker
client = docker.from_env()
res = client.containers.run("alpine", environment=["NAME=hawksnowlog"], command="env")
print(res)
同時に削除 (--rm
)
import docker
client = docker.from_env()
res = client.containers.run("alpine", environment=["NAME=hawksnowlog"], command="env", remove=True)
print(res)
コンテナの一覧を取得 (ps -a
)
import docker
client = docker.from_env()
res = client.containers.list(all=True)
print(res)
ホストを指定する
import docker
docker.DockerClient(base_url='tcp://172.28.128.3:2375')
res = client.containers.list(all=True)
print(res)
もしくは docker.from_env()
を使ってプログラムを実行する際に DOCKER_HOST
環境変数で指定する
最後に
Python3 から docker を操作していみました
かなり簡単に使えます
Swarm, Service あたりはカバーしているようです
Stack Deploy はまだのようです
https://github.com/docker/docker-py/issues/1173
0 件のコメント:
コメントを投稿