🐳

Docker初心者のための環境構築入門🐳

に公開

プロジェクトごとに独立した環境をつくろう!

Pythonプログラムをもらうと、requirements.txtなどで環境を用意しますよね!すると、PythonやNumpyなどのライブラリのバージョンが混在していきます。Dockerをつかうことで、この問題を解決していきます!!

この記事はDocker入門者向けに書いたので、ほぼ最小の構成でコンテナを作ろうと思います。

Dockerを手に入れよう

docker windows「docker mac」「docker ubuntu」などで検索して、使っているPCに合わせてDockerを用意しましょう!下記に公式サイトのリンクを載せておきます。
https://www.docker.com/ja-jp/

フォルダ構成

構成はDockerfileのみのシンプルな形です。

.
└─Dockerfile

Dockerfileには FROMにオリジナルのイメージの元になるイメージ、 CMDに実行時のコマンドを記述します。

FROM python:3.12

CMD [ "python", "--version" ]

Dockerイメージをつくる

ターミナルでDockerfileがあるディレクトリに移動して、イメージを作成します。シンプルにビルドだけしてもよいですが、「-t」で好きなタグとバージョンを付与するとイメージを複数作成した際に見分けやすいので便利です。

  • ビルド + タグとバージョンをつける(my-python-appはタグで「:」以降の3.12.0はバージョン)
docker build -t my-python-app:v3.12.0 .

ビルドが成功したかをdocker imagesコマンドを使って確かめましょう!すると、イメージの詳細が出てきました。先ほど設定したタグとバージョンが表示されました。

docker images

REPOSITORY      TAG        IMAGE ID       CREATED       SIZE
my-python-app   v3.12.0    f1adc901fc4d   5 weeks ago   1.02GB

では、これまでの流れを応用して別のバージョンのイメージを作成してみましょう。

  1. Dockerfileを編集してPython 3.9にする。
FROM python:3.9

CMD [ "python", "--version" ]
  1. ビルドする。
docker build -t my-python-app:v3.9.0 .
  1. イメージを確かめる。
docker images

REPOSITORY      TAG        IMAGE ID       CREATED        SIZE
my-python-app   v3.12.0    f1adc901fc4d   5 weeks ago    1.02GB
my-python-app   v3.9.0     7b51c7de8fe6   3 months ago   999MB

コンテナを立ち上げる

runコマンドを使ってイメージからコンテナを起動しましょう。「-t」で先ほど指定したタグを指定することでイメージを指定できます。DockerfileのCMDでpythonのバージョンを出力しています。

  1. v3.12.0を起動する。
docker run -t my-python-app:v3.12.0

Python 3.12.9
  1. v3.9.0を起動する。
docker run -t my-python-app:v3.9.0

Python 3.9.21

まとめ

DockerでPythonのバージョンを切り替えることが出来ました。次は、Pythonファイルを動かすシンプルなDockerfileを作成してみようと思います。

Discussion