Windows11 WSL2 Ubuntu 24.04 LTS Docker miniconda3
Docker イメージ d-minic コンテナを起動
それでは Docker イメージ d-minic でコンテナを起動します。
yamada@yama:~/d-minic$ docker run -it d-minic
でコンテナを起動します。
conda list で panndas がインストールされているか確認します。
yamada@yama:~/d-minic$ docker run -it d-minic (base) root@1e046be4df9a:/app# conda list # packages in environment at /opt/conda: # # Name Version Build Channel _libgcc_mutex 0.1 main _openmp_mutex 5.1 1_gnu anaconda-anon-usage 0.7.0 py313hfc0e8ea_101 annotated-types 0.6.0 py313h06a4308_0 archspec 0.2.3 pyhd3eb1b0_0 blas 1.0 mkl boltons 24.1.0 py313h06a4308_0 ・・・・・・・・ numexpr 2.11.0 py313h41d4191_1 numpy 2.3.3 py313h720eef7_0 numpy-base 2.3.3 py313h95072fd_0 openssl 3.0.17 h5eee18b_0 packaging 24.2 py313h06a4308_0 pandas 2.3.2 py313h280b501_0 pcre2 10.42 hebb0a14_1 pip 25.0 py313h06a4308_0 platformdirs 4.3.7 py313h06a4308_0 pluggy 1.5.0 py313h06a4308_0 pybind11-abi 5 hd3eb1b0_0 pycosat 0.6.6 py313h5eee18b_2 pycparser 2.21 pyhd3eb1b0_0 pydantic 2.10.3 py313h06a4308_0 pydantic-core 2.27.1 py313h4aa5aa6_0 pygments 2.19.1 py313h06a4308_0 pysocks 1.7.1 py313h06a4308_0 python 3.13.2 hf623796_100_cp313 python-dateutil 2.9.0post0 py313h06a4308_2 python-tzdata 2025.2 pyhd3eb1b0_0 python_abi 3.13 0_cp313 ・・・・・・・・
追加で pandas がインストールされました。
ついでに、numpy もインストールされました。
テストファイルの実行確認
コンテナ d-minic 内でテストファイル test-1.py が動作するか確認します。
(base) root@1e046be4df9a:/app# python3 test-1.py [結果] Hello WORLD!! (base) root@1e046be4df9a:/app# exit [結果] exit yamada@yama:~/d-minic$
exit コマンドを実行すると、起動していたコンテナが停止します。
Docker コンテナ d-minic で GPU が使えるか確認
--rm オプション(コンテナ終了時にコンテナを自動的に削除)を付けて
Docker コンテナ d-minic を起動してみます。
--gpus all オプションを付けました。(gpu はすべて使ってね)
# conda list の中に gpu を使用するパッケ-ジはないように見えるのですが
エラーにはならないようです。
Docker コンテナ d-minic の中には CUDA も cuDNN も入っていません。
にも係らず、gpu 環境が使えるようです。
これはローカル環境に CUDA, cuDNN を入れているためと思われます。
yamada@yama:~$ cd d-minic yamada@yama:~/d-minic$ docker run --rm -it --gpus all d-minic (base) root@0e25f2c740df:/# nvidia-smi Tue Sep 23 09:57:15 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 580.82.10 Driver Version: 581.29 CUDA Version: 13.0 | +-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA GeForce GTX 1650 On | 00000000:01:00.0 On | N/A | | 32% 51C P8 N/A / 75W | 700MiB / 4096MiB | 1% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | 0 N/A N/A 22 G /Xwayland N/A | | 0 N/A N/A 22 G /Xwayland N/A | +-----------------------------------------------------------------------------------------+
--rm オプションを付けましたので nvidia-smi の動作が完了すると即座にコンテナも自動的に削除されます。
Docker イメージの保存
ここまでで、miniconda の中で numpy,pandas が動作する独自の Docker イメージ d-minic が完成しました。
引き続き、このイメージを圧縮ファイル(tar)として保存してみます。
保存したイメージファイルは配布することができます。
書式は
docker save [オプション] <イメージ名>[:<タグ>] -o <アーカイブファイル名>
です。
コンテナフォルダ \d-minic に移動します。
yamada@yama:~$ cd d-minic
yamada@yama:~/d-minic$ docker save d-minic:latest -o d-minic.tar
d-minic:latest イメージは
現在のディレクトリ(~/d-minic) に
/home/yamada/d-minic/d-minic.tar
として保存されます。
Docker イメージの保管
Docker イメージを保管・配布できるのは Docker Hub だけではありません。
さくらのクラウド「コンテナレジストリ」でもイメージの保管・配布ができます。
コンテナレジストリ(Lab)で Docker イメージを保存・配布する方法
ちょっと古いです。
コンテナレジストリ
が参考になります。
もっと詳しく紹介したいのですが、又の機会にさせてください。
Docker イメージの取込み
docker load コマンドで tar アーカイブから Docker イメージを取込みます。
書式は
$ docker load --input ****.tar
--input オプションで tar アーカイブのファイルからの読込を指示します。
まずは、まだ残っている d-minic イメージを削除します。
存在しているコンテナを確認します。
yamada@yama:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1a46fcdbb84a d-minic "/bin/bash" 3 hours ago Exited (0) 3 hours ago clever_sanderson
このコンテナを削除します。
yamada@yama:~$ docker rm 1a46fcdbb84a
次に d-minic イメージを削除します。
yamada@yama:~$ docker image rm d-minic
d-minic イメージが削除されたのを確認します。
yamada@yama:~$ docker images
コンテナフォルダ \d-minic に移動します。
ここに d-minic.tar があります。
yamada@yama:~$ cd d-minic
yamada@yama:~/d-minic$
tar アーカイブから Docker イメージを取込みます。
yamada@yama:~/d-minic$ docker load --input d-minic.tar
d-minic イメージが取込まれたのを確認します。
yamada@yama:~/d-minic$ docker images
Docker イメージ d-minic でコンテナが起動することを確認します。
yamada@yama:~/d-minic$ docker run -it d-minic
どうでしたか?
一旦削除した d-minic イメージが復活したはずです。
何とか Docker コンテナが動くようになりました。
でもコンテナを破棄すると出来上がったデータも破棄されてしまい再利用できません。
引き続き Docker volume について考えて行きます。