動機
以下の動機で、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サーバーを終了。