Docker SDK for PythonでDockerを操作してみたメモです。
環境構築
今回の環境はUbuntu20.04です。インストールはDocker公式ページを参照します。
また、ユーザをグループに属させることでsudoなしでdockerを実行するようにします。
# 以下実行後は再起動のこと。 # すぐにdockerを実行しようとしてもpermission deniedと怒られる。 sudo gpasswd -a <ユーザ名> docker
Docker SDK for Pythonは次のコマンドでインストールします。
pip3 install docker
PythonでDocker
Dockerの扱いに慣れていれば、Docker SDK for Python公式ページを参照するくらいで、基本的にあまり困らなそうです。
まずは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も扱えるようなので、次回はそれを使って少し実験してみたいと思います。