DockerでPythonの実行環境を構築したのでまとめてみました。
Dockerについていまいち理解していないが、とりあえずPythonの実行環境をローカル環境を汚さずにコンテナ技術を用いて準備したい方に向けた記事になります。
Dockerのインストール
自分のPC環境に適したDockerをインストールします。
今回は「Docker Desktop」を利用します。
「Docker Desktop」のインストールが完了したらターミナル等でdockerコマンドが使えることを確認しましょう。
Dockerの設定
ディレクトリ/ファイル構成
以下のような構成でディレクトリ/ファイルを作成してください
「python-sample-program」の部分は好きなのディレクトリ名に変えてください。
python-sample-program
├── Dockerfile
├── docker-compose.yml
└── opt
└── sample.py
Dockerfile
Dockerfileに以下のように記述します。
# ベースイメージを選択
FROM python:3
USER root
# ベースイメージに対してコマンドを実行
RUN apt-get update
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm
# 環境変数を設定
RUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
# モジュールをインストール
事前に使いたいモジュールが決まっている場合は以下のように追記します。
(例)「jupyterlab」モジュールを使う場合
RUN pip install jupyterlab
docker-compose.yml
docker-compose.ymlには以下のように記述します。
version: '3'
services:
python3:
restart: always
build: .
container_name: 'python3'
working_dir: '/root/'
tty: true
volumes:
- ./opt:/root/opt
sample.py
sample.pyには以下のように記述します。
def main():
print('Hello World')
if __name__ == '__main__':
main()
コンテナの起動
Dockerfileからイメージを作成し、そのイメージからコンテナを作成し起動します。
ターミナルに以下のコマンドを入力します。
docker compose up -d --build
今回はDockerコマンドの説明を省略しますが、コマンド一覧を丁寧にまとめている記事があるので紹介しておきます。
コンテナに接続
コンテナに接続してコンテナの中の環境でコマンドを実行できるようにします。
ターミナルに以下のコマンドを入力します。
docker compose exec python3 bash
以下のような画面になっていれば接続が成功しています。
Pythonファイルの実行
コンテナ内でPythonファイルを実行します。
「Hello World」と表示されれば実行成功です。
コンテナの削除
コンテナとの接続を切り不要なコンテナを削除します。
ターミナルに以下のコマンドを入力します。
exit
docker compose down
以下のような画面になっていれば削除が成功しています。
コンテナの再作成
一度削除したコンテナを再作成し接続します。
ターミナルに以下のコマンドを入力します。
docker compose up -d
おわりに
今回はDockerでPythonの実行環境を構築しました。
Dockerでの開発環境構築は、ローカル環境に依存せず展開でき、ローカル環境を汚すこともないので非常に有益です。
筆者もさらに理解を深めたいと思います。