Windows11 WSL2 Ubuntu 24.04 LTS Docker miniconda3

docker-miniconda3 コンテナの構築

ここまでで、NVIDIA Container Toolkit をインストールすることができました。
GPU が使えるように準備してきたのですが、それは一旦脇に置いといて、 まずは、Docker コンテナ miniconda3 を構築します。
とりあえずは GPU のことは考えずに進めます。
continuumio/miniconda3 は Miniconda がすぐに使用できるコンテナです。
基本的な Python パッケージが含まれています。
必要な Python パッケージも後から追加することができます。
詳細は continuumio/miniconda3 から見ることができます。
参考となるサイトがいくつかあります。
ちょっと古いですが
Dockerを使って爆速でGPUを設定する方法
UbuntuにDockerをインストールしてGPUを認識させる

docker-miniconda3 コンテナの実行

docker-miniconda3 コンテナは
$ docker run -i -t continuumio/miniconda3 /bin/bash
で実行することができます。
-i -t がよくわからない人は
docker run -it の「-it」とはなにか を参照してください。
-i オプションは「入力」のことです。
具体的には「キー入力」もこれに相当します。
docker run に -t オプションを指定すると top を起動できるようになります。
ちなみに -t だけの指定で -i がないとキー入力が受け付けられなくなるため Q キー押下で終了できません。
/bin/bash がよくわからない人は
Linux で使われるファイル
を参照してください。
簡単言えば、/bin/bash とは Linux の標準シェル「人からの入力をコンピュータに伝えるプログラム」です。
コンテナを起動したらこれを開くように指示しています。
それでは continuumio/miniconda3 を起動してみましょう。

yamada@yama:~$ docker run -i -t continuumio/miniconda3 /bin/bash
[結果]
Unable to find image 'continuumio/miniconda3:latest' locally
latest: Pulling from continuumio/miniconda3
254e724d7786: Already exists
17404f4f56f1: Pull complete
6a3124a74883: Pull complete
Digest: sha256:4a2425c3ca891633e5a27280120f3fb6d5960a0f509b7594632cdd5bb8cbaea8
Status: Downloaded newer image for continuumio/miniconda3:latest
(base) root@d47014405170:/#

continuumio/miniconda3 コンテナが構築されました。
# conda list でどんな Python パッケージがインストールされているのか確認してみましょう。

   
(base) root@d47014405170:/# 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
boltons                   24.1.0          py313h06a4308_0
brotli-python             1.0.9           py313h6a678d5_9
bzip2                     1.0.8                h5eee18b_6
c-ares                    1.19.1               h5eee18b_0
ca-certificates           2025.2.25            h06a4308_0
certifi                   2025.4.26       py313h06a4308_0
cffi                      1.17.1          py313h1fdaa30_1
charset-normalizer        3.3.2              pyhd3eb1b0_0
conda                     25.3.1          py313h06a4308_0
conda-anaconda-telemetry  0.1.2           py313h06a4308_1
conda-anaconda-tos        0.1.3           py313h06a4308_0
conda-content-trust       0.2.0           py313h06a4308_1
conda-libmamba-solver     25.4.0             pyhd3eb1b0_0
conda-package-handling    2.4.0           py313h06a4308_0
conda-package-streaming   0.11.0          py313h06a4308_0
cpp-expected              1.1.0                hdb19cb5_0
cryptography              44.0.1          py313h7825ff9_0
distro                    1.9.0           py313h06a4308_0
expat                     2.7.1                h6a678d5_0
fmt                       9.1.0                hdb19cb5_1
frozendict                2.4.2           py313h06a4308_0
icu                       73.1                 h6a678d5_0
idna                      3.7             py313h06a4308_0
jsonpatch                 1.33            py313h06a4308_1
jsonpointer               2.1                pyhd3eb1b0_0
krb5                      1.20.1               h143b758_1
ld_impl_linux-64          2.40                 h12ee557_0
libarchive                3.7.7                hfab0078_0
libcurl                   8.12.1               hc9e6f67_0
libedit                   3.1.20230828         h5eee18b_0
libev                     4.33                 h7f8727e_1
libffi                    3.4.4                h6a678d5_1
libgcc-ng                 11.2.0               h1234567_1
libgomp                   11.2.0               h1234567_1
libmamba                  2.0.5                haf1ee3a_1
libmambapy                2.0.5           py313hdb19cb5_1
libmpdec                  4.0.0                h5eee18b_0
libnghttp2                1.57.0               h2d74bed_0
libsolv                   0.7.30               he621ea3_1
libssh2                   1.11.1               h251f7ec_0
libstdcxx-ng              11.2.0               h1234567_1
libuuid                   1.41.5               h5eee18b_0
libxml2                   2.13.8               hfdd30dd_0
lz4-c                     1.9.4                h6a678d5_1
markdown-it-py            2.2.0           py313h06a4308_1
mdurl                     0.1.0           py313h06a4308_0
menuinst                  2.2.0           py313h06a4308_1
ncurses                   6.4                  h6a678d5_0
nlohmann_json             3.11.2               h6a678d5_0
openssl                   3.0.16               h5eee18b_0
packaging                 24.2            py313h06a4308_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_abi                3.13                    0_cp313
readline                  8.2                  h5eee18b_0
reproc                    14.2.4               h6a678d5_2
reproc-cpp                14.2.4               h6a678d5_2
requests                  2.32.3          py313h06a4308_1
rich                      13.9.4          py313h06a4308_0
ruamel.yaml               0.18.10         py313h5eee18b_0
ruamel.yaml.clib          0.2.12          py313h5eee18b_0
setuptools                78.1.1          py313h06a4308_0
simdjson                  3.10.1               hdb19cb5_0
spdlog                    1.11.0               hdb19cb5_0
sqlite                    3.45.3               h5eee18b_0
tk                        8.6.14               h39e8969_0
tqdm                      4.67.1          py313h7040dfc_0
truststore                0.10.0          py313h06a4308_0
typing-extensions         4.12.2          py313h06a4308_0
typing_extensions         4.12.2          py313h06a4308_0
tzdata                    2025a                h04d1e81_0
urllib3                   2.3.0           py313h06a4308_0
wheel                     0.45.1          py313h06a4308_0
xz                        5.6.4                h5eee18b_1
yaml-cpp                  0.8.0                h6a678d5_1
zlib                      1.2.13               h5eee18b_1
zstandard                 0.23.0          py313h2c38b39_1
zstd                      1.5.6                hc292b87_0

Python ファイルとしては python 3.13.2 がインストールされているだけで、 主要な Python パッケージは入っていません。
でも python 3 は入っているので Python は実行できるはずです。
a + b = c
を実行してみましょう。

   
(base) root@d47014405170:/# python3
[python3 実行可能]
Python 3.13.2 | packaged by Anaconda, Inc. | (main, Feb  6 2025, 18:56:02) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a=10
>>> b=20
>>> c=a+b
>>> print(c)
30

Ctrl + d で元に戻りましょう。
そして、
(base) root@d47014405170:/# exit
で一旦コンテナを終了しましょう。

ここまでで単純に continuumio/miniconda3 コンテナを起動しました。
引き続き dockerfile を使用して continuumio/miniconda3+α コンテナを起動します。


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