K.MIURA@OUC

The special secret of making dreams come true can be summarized in four C’s. They are Curiosity, Confidence, Courage, and Constancy. –Walt Disney

PythonでDockerを制御する

[基本環境]
  • Python 3.7.3
  • Docker 19.03.8
[注意]
  • Docker SDK for Pythonを基にしたDocker制御ではない
  • Subprocessを基にしたDocker制御である
  • Dockerのオプションを多様したいなら、結局、Subprocessに落ち着く
[Dockerコンテナ一覧の取得]
  • Dockerコマンドなら
    • docker ps -a
  • Pythonコードなら
    1. import subprocess
    2. comp = subprocess.run([‘docker’, ‘ps’, ‘-a’], encoding=‘utf-8’, stdout=subprocess.PIPE)
    3. print(comp)
[Dockerコンテナの起動]
  • Dockerコマンドなら
    • docker run -itd --priviledged -p 80:80/tcp --name websrv debian:stable
  • Pythonコードなら
    1. import subprocess
    2. comp = subprocess.run([‘docker’, ‘run’, ‘-itd’, ‘--priviledged’, ‘-p’, ‘80:80/tcp’, ‘--name’, ‘websrv’, ‘debian:stable’], encoding=‘utf-8’, stdout=subprocess.PIPE)
    3. print(comp)
[まとめ]
  • subprocess.runの第一引数のリストにコマンドとオプションを列挙することで、オプションが増えても気にせず実行できる

Share