動機
以下の動機で、Docker でPython環境を構築した。
- Pythonバージョンを気軽に変更して実験したい
- Anaconda よりも移植性を高めたい
事前準備
正しく Docker がインストールされてることが前提。
手順:WSL2 Ubuntu に Docker をインストールする手順
ディレクトリ構成
docker_python/ ├ Dockerfile ├ docker-compose.yml └ app/ └ sample.py
Windowsターミナルから Ubuntu を開いて、docker_pythonフォルダを作成。
Dockerfile を作成
こちら からPythonバージョンを選ぶ。
以下では 3.9.10-buster を指定。
jupyterlab 3.2.8 もインストールする設定。(お好みで)
FROM python:3.9.10-buster 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 RUN pip install jupyterlab==3.2.8
docker-compose.yml を作成
Dockerfile を使用するので image ではなく build を使用。
version: '3' services: python: restart: always build: . container_name: 'Jupyter' working_dir: '/root/app' tty: true volumes: - ./app:/root/app
sample.py を作成
print("Hello")
Dockerイメージ作成、コンテナビルド、コンテナ起動
cd docker_python/ docker-compose up -d --build
イメージとコンテナの確認
docker image ls docker container ls
コンテナへの接続
docker-compose.yml の services名 を指定。
docker-compose exec python bash
Python実行
python sample.py
コンテナの削除
exit docker-compose down
コンテナの再起動
docker-compose up -d
JupyterLab をブラウザで使う
docker run -v $PWD/app:/root/app -w /root/app -it --rm -p 7777:8888 docker_python_python jupyter-lab --ip 0.0.0.0 --allow-root -b localhost
http://127.0.0.1:7777 にアクセスし、token をコピペして入力すれば JupyterLab 使用可能。
Ctrl + C で JupyterLabサーバーを終了。