ヒスねこTechBlog

日々の気になる技術をまとめてます。

PythonでDocker操作お試し

Docker SDK for PythonでDockerを操作してみたメモです。

環境構築

今回の環境はUbuntu20.04です。インストールはDocker公式ページを参照します。

docs.docker.com

また、ユーザをグループに属させることでsudoなしでdockerを実行するようにします。

# 以下実行後は再起動のこと。
# すぐにdockerを実行しようとしてもpermission deniedと怒られる。
sudo gpasswd -a <ユーザ名> docker

Docker SDK for Pythonは次のコマンドでインストールします。

pip3 install docker
PythonでDocker

Dockerの扱いに慣れていれば、Docker SDK for Python公式ページを参照するくらいで、基本的にあまり困らなそうです。

docker-py.readthedocs.io

まずはdocker run相当。コンテナの名前をつける&デタッチする場合は下記のような形。

import docker
client = docker.from_env()

# docker run
cont = client.containers.run(
    'Dockerイメージ名', 
    '実行コマンド', 
    name='コンテナの名前', 
    detach=True
)
# コンテナIDを表示
print(cont.id)

コンテナのIDからコンテナを取得し、操作する場合。

import docker
client = docker.from_env()

# IDからコンテナを取得
cont = client.containers.get('コンテナID(SHA256形式)')
# 例) docker startする
cont.start()
# 例) docker stopする
cont.stop()
# 例) docker container rmする
cont.remove()

swarmも扱えるようなので、次回はそれを使って少し実験してみたいと思います。