Docker

Docker Composeを利用してPythonプログラムを実行してみた

Docker Composeを利用すると、複数のDockerコンテナを一度に操作することができる。

今回は、Docker Composeを利用してPython実行環境を作成し、Pythonプログラムを実行してみたので、その手順を共有する。

なお、Docker Composeの詳細は、以下のサイトを参照のこと。
https://www.kagoya.jp/howto/cloud/container/dockercompose/

前提条件

以下の手順に従って、Windows端末上に、Docker Desktopをインストール済であること。

Windows端末上に「Docker Desktop」をインストールしてみた「Docker Desktop」とは、ローカル環境にDockerコンテナを用いた開発環境を導入するためのソフトウェアのことをいう。今回は...

Docker Composeを利用したPythonプログラムの実行

Docker Composeを利用してDockerコンテナを起動し、DockerコンテナにログインしPythonプログラムを実行できるようにする。その手順は、以下の通り。

1) 以下のように、特定のフォルダ内に「Dockerfile」「docker-compose.yml」、インストールするPythonライブラリ「requirements.txt」、実行するPythonプログラム「decision_tree_sample.py」を配置する。
なお、Docker Composeを利用するため、今回は「docker-compose.yml」が必要になる。
Docker Composeを利用したPythonプログラムの実行_1_1

「docker-compose.yml」の内容は以下の通りで、文字コードをUTF-8としている。
Docker Composeを利用したPythonプログラムの実行_1_2

上記以外のソースコードは、以下の記事と同様となる。

PythonのDockerイメージでPythonプログラムを実行してみたDocker公式のDockerレジストリ「Docker Hub」には、さまざまなDockerイメージが格納されている。 今回は、P...

2) コマンドプロンプトを起動し、「Dockerfile」「docker-compose.yml」が入っているフォルダに移動後、「docker compose up -d --build」コマンドを実行し、Dockerイメージを作成する。
Docker Composeを利用したPythonプログラムの実行_2

なお、オプション「--build」で、Dockerコンテナの開始前にDockerイメージを構築するようにし、オプション「-d」で、コンテナをバックグラウンドで起動するようにしている。

3)「docker image ls」コマンドで、2)で作成されたDockerイメージを確認する。また、「docker container ls」コマンドで、2)で作成・起動されたDockerコンテナを確認する。
Docker Composeを利用したPythonプログラムの実行_3_1

Docker Desktop上でも、以下のように、2)で作成されたDockerイメージと、2)で作成・起動されたDockerコンテナが確認できる。
Docker Composeを利用したPythonプログラムの実行_3_2

Docker Composeを利用したPythonプログラムの実行_3_3

4)「docker-compose exec (コンテナ名) bash」を実行すると、以下のように、2)で起動したDockerコンテナにログインすることができる。
Docker Composeを利用したPythonプログラムの実行_4

5) 2)で起動したDockerコンテナ内で、Pythonプログラム「decision_tree_sample.py」を実行すると、プログラムが正常終了し、画像ファイル「decision_tree_graph.png」が出力されることが確認できる。
Docker Composeを利用したPythonプログラムの実行_5_1

このとき、「docker-compose.yml」の「volumes」の設定により、ローカルに「decision_tree_graph.png」が作成されているのが確認できる。
Docker Composeを利用したPythonプログラムの実行_5_2

Docker Composeを利用したPythonプログラムの実行_5_3

6) exitコマンドを実行すると、以下のように、2)で起動したDockerコンテナからログアウトできる。
Docker Composeを利用したPythonプログラムの実行_6_1

このとき、Dockerコンテナは以下のように、まだ起動中であることが確認できる。
Docker Composeを利用したPythonプログラムの実行_6_2

(Docker Desktop上)
Docker Composeを利用したPythonプログラムの実行_6_3

7) Dockerコンテナを終了するには、「docker-compose down」コマンドを実行する。
Docker Composeを利用したPythonプログラムの実行_7

8) Dockerコンテナを終了すると、以下のように、Dockerコンテナは無くなり、Dockerイメージが残っていることが確認できる。
Docker Composeを利用したPythonプログラムの実行_8_1

(Docker Desktop上)
Docker Composeを利用したPythonプログラムの実行_8_2

Docker Composeを利用したPythonプログラムの実行_8_3

(Docker Desktop上)
Docker Composeを利用したPythonプログラムの実行_8_4

要点まとめ

  • Docker Composeを利用すると、複数のDockerコンテナを一度に操作することができて便利である。