PythonでDockerライブラリを使用しコンテナを実行してみます。
今回は、Dockerライブラリを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要はあります。
また今回はWindows10に「Docker Desktop」をインストールした状態となっています。
Dockerのバージョンは上記となっています。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■Dockerライブラリを使用しコンテナを構築し実行する
では、早速Dockerライブラリを使用しコンテナを構築し実行するスクリプトを書いていきます。
import docker client = docker.from_env() print(client.containers.run("alpine", ["echo", "hello", "world"]))
importでdockerモジュールを呼び出します。その後、client変数を定義し、docker.from_env()を用います。これで、Dockerデーモンと通信を行うために、クライアントをインスタンス化されました。
その後、client.containers.run()を用います。括弧内には第1の引数,パラメータとしてイメージ(image)を渡します。今回は超軽量な「Alpine Linux」を指定しています。次に第2の引数,パラメータとして、コンテナを実行した時のコマンド(command)を渡します。今回はechoで「hello」,「world」と出力させるようにします。
■実行・検証
このスクリプトを「d_host.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\paramiko\transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated "class": algorithms.Blowfish, b'hello world\n'
実行してみましたが、「Cryptography Deprecation Warning(暗号化非推奨の警告)」という警告が出力されてしまいましたが、エラーではないので、コンテナを実行させることができました。
なお、今回「Docker Desktop」をインストールしており、「Docker Desktop」から予めコンテナの構築は行っていなかったのですが、dockerモジュールを用いると、自動で「upbeat_roentgen」(alpine)というコンテナが構築されていることが確認できました。
コメント