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 について考えて行きます。


  • Docker volume に進む
  • dockerfile で continuumio/miniconda3 コンテナを起動 に戻る
  • docker-miniconda3 コンテナの構築 に戻る
  • NVIDIA Container Toolkit インストール準備まとめ に戻る
  • Docker コンテナ miniconda3 に戻る
  • 70VPS に戻る