Docker初心者のための環境構築入門🐳
プロジェクトごとに独立した環境をつくろう!
Pythonプログラムをもらうと、requirements.txtなどで環境を用意しますよね!すると、PythonやNumpyなどのライブラリのバージョンが混在していきます。Dockerをつかうことで、この問題を解決していきます!!
この記事はDocker入門者向けに書いたので、ほぼ最小の構成でコンテナを作ろうと思います。
Dockerを手に入れよう
「docker windows」「docker mac」「docker ubuntu」などで検索して、使っているPCに合わせてDockerを用意しましょう!下記に公式サイトのリンクを載せておきます。
フォルダ構成
構成は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
では、これまでの流れを応用して別のバージョンのイメージを作成してみましょう。
- Dockerfileを編集してPython 3.9にする。
FROM python:3.9
CMD [ "python", "--version" ]
- ビルドする。
docker build -t my-python-app:v3.9.0 .
- イメージを確かめる。
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のバージョンを出力しています。
- v3.12.0を起動する。
docker run -t my-python-app:v3.12.0
Python 3.12.9
- v3.9.0を起動する。
docker run -t my-python-app:v3.9.0
Python 3.9.21
まとめ
DockerでPythonのバージョンを切り替えることが出来ました。次は、Pythonファイルを動かすシンプルなDockerfileを作成してみようと思います。
Discussion