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+α コンテナを起動します。