Windows11 WSL2 Ubuntu 24.04 LTS Docker miniconda3

miniconda3 python 3.12 Docker minit20 動作確認

ここまでで Docker minit20 コンテナを構築する準備が終わりました。
このコンテナの動作確認用の python ファイルを作成します。
tensorflow で動作する簡単なファイルです。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
# 1:INFO メッセージを出さない。
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

を実行すると下記のような GPU device 名を表示することができます。
device: 0, name: NVIDIA GeForce GTX 1650

自分の PC Windows で TeraPad 等を使用して test2.py ファイル(上記4行の内容)
を作成しこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\d-mini-t20\files\
ここに test2.py を保存します。
ファイル名は適当
test2.py
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。

docker-compose d-mini-t20 ファイル実行

Docker minit20 を動作させる準備が終わりました。
Docker Compose ファイルを実行していきます。
WSL2 Ubuntu 24.04 LTS ディスクトップ日本語からターミナルを開きます。
PowerShell 7 からでもターミナルを開くことができます。
PowerShell 7 追加インスト-ル参照。
コンテナフォルダ \d-mini-t20 に移動します。
yamada@yama:~$ cd d-mini-t20
移動できたら次のコマンドを入力実行します。
yamada@yama:~/d-mini-t20$ docker compose up
\d-mini-t20 にある docker-compose.yml でコンテナを構築します。
-d を付けるとバックグラウンド処理になってしまいます。
-d なしにします。

yamada@yama:~$ cd d-mini-t20
yamada@yama:~/d-mini-t20$ docker compose up
[+] Building 2.7s (15/15) FINISHED
 => [internal] load local bake definitions                                                     0.0s
 => => reading from stdin 505B                                                                 0.0s
 => [internal] load build definition from Dockerfile                                           0.0s
 => => transferring dockerfile: 1.94kB                                                         0.0s
 => [internal] load metadata for docker.io/continuumio/miniconda3:latest                       2.5s
 => [internal] load .dockerignore                                                              0.0s
 => => transferring context: 2B                                                                0.0s
 => [1/9] FROM docker.io/continuumio/miniconda3:latest@sha256:4a2425c3ca891633e5a27280120f3fb  0.0s
 => => resolve docker.io/continuumio/miniconda3:latest@sha256:4a2425c3ca891633e5a27280120f3fb  0.0s
 => CACHED [2/9] WORKDIR /app                                                                  0.0s
 => CACHED [3/9] RUN conda create -n py312 python=3.12                                         0.0s
 => CACHED [4/9] RUN conda install pandas                                                      0.0s
 => CACHED [5/9] RUN conda install -c conda-forge matplotlib                                   0.0s
 => CACHED [6/9] RUN conda install -c conda-forge mplfinance                                   0.0s
 => CACHED [7/9] RUN conda install scikit-learn                                                0.0s
 => CACHED [8/9] RUN pip install tensorflow[and-cuda]                                          0.0s
 => CACHED [9/9] RUN echo "conda activate py312" >> ~/.bashrc                                  0.0s
 => exporting to image                                                                         0.0s
 => => exporting layers                                                                        0.0s
 => => writing image sha256:0cfab1a7c1a840bafbf954239b652b89593388f955da658805c3ca38fedc60a8   0.0s
 => => naming to docker.io/library/yamt20-minit20                                              0.0s
 => resolving provenance for metadata file                                                     0.0s
[+] Running 3/3
 ✔ yamt20-minit20              Built                                                           0.0s
 ✔ Network yamt20_default      Created                                                         0.0s
 ✔ Container yamt20-minit20-1  Created                                                         0.1s
Attaching to minit20-1
minit20-1 exited with code 0

# docker image 構築完了
# docker minit20 起動
yamada@ama:~/d-mini-t20$ docker compose run --rm minit20
(py312) root@cd168279526a:/app# python test2.py

# ここから test2.py が動作するか確認

WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1763001352.073334      15 gpu_device.cc:2020] Created device /device:GPU:0 with 2246 MB memory:  -> device: 0, name: NVIDIA GeForce GTX 1650, pci bus id: 0000:01:00.0, compute capability: 7.5
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 2519114757320603099
xla_global_id: -1
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 2355573556
locality {
  bus_id: 1
  links {
  }
}
incarnation: 4277617055666959293
physical_device_desc: "device: 0, name: NVIDIA GeForce GTX 1650, pci bus id: 0000:01:00.0, compute capability: 7.5"
xla_global_id: 416903419
]

動作しました。
結果が表示されていれば コンテナ tensorflow gpu 版は動作しています。
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
は無視して問題ありません。
この無害な警告は無視します。

docker-compose minit20 ファイル実行Ⅱ

他の方法でも動作確認をしましょう。
nvidia-smi で GPU の Driver Version 等も確認できます。

(py312) root@cd168279526a:/app# nvidia-smi
Mon Nov 10 05:44:14 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 |
| 29%   48C    P8            N/A  /   75W |     633MiB /   4096MiB |      2%      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      |
+-----------------------------------------------------------------------------------------+

又、nvidia-smi dmon で GPU の動作をモニタすることができます。
Ctrl + c で停止できます。


(py312) root@cd168279526a:/app# nvidia-smi dmon
# gpu    pwr  gtemp  mtemp     sm    mem    enc    dec    jpg    ofa   mclk   pclk
# Idx      W      C      C      %      %      %      %      %      %    MHz    MHz
    0      -     48      -      9     15      0      0      0      0    405    300
    0      -     48      -      3     14      0      0      0      0    405    300
    0      -     48      -      2     13      0      0      0      0    405    300
    0      -     48      -      2     13      0      0      0      0    405    300
    0      -     48      -      2     13      0      0      0      0    405    300
    0      -     48      -      2     13      0      0      0      0    405    300
・・・・・・・・

docker-compose minit20 ファイル実行Ⅱ

おまけにもう一つ他の方法でも動作確認をしましょう。
以下の4行のファイルを作成し tesy3.py とし確認してみましょう。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
import tensorflow as tf
print("TensorFlow version:", tf.__version__)

root@8111632cdadb:/app# python3 test3.py
[結果]
TensorFlow version: 2.20.0
と表示されれば OK です。

Docker コンテナ minit20 が完成しました。
なお、2025/11/13日現在、tensorflow gpu 版の最新は
python 3.12、tensorflow 2.20
となっています。

https://zenn.dev/ashitahonkidasu/articles/73132d1563b745  
win11+WSL+Docker Desktop(GPU container)+miniconda+intel MKLで環境構築

例 ソースコード
FROM ubuntu:latest
WORKDIR /app
COPY . /app
RUN apt-get update && apt-get install -y python3
CMD ["python3", "your_script.py"]
この例では:
$ CMD ["python3", "your_script.py"]
: 最終的に、/appディレクトリ内でyour_script.pyというPythonスクリプトが実行されます。

Docker に入って
OSを確認する
# cat /etc/os-release
利用可能なシェルを確認する
# cat /etc/shells

https://www.tensorflow.org/install/docker?hl=ja&_gl=1*kei7b9*_up*MQ..*_ga*MTQzNDQyOTY1Ni4xNzYyMTYxMDQ5*_ga_W0YLR4190T*czE3NjIxNjEwNDkkbzEkZzAkdDE3NjIxNjEwNDkkajYwJGwwJGgw
Docker [重要]

https://qiita.com/Nao-Taka/items/9fc72b3f85ce5bdba8b3
Dockerで、Windows(+WSL2)上にVScode+PythonによるGPU開発+GUI表示ができる環境を作る  [重要]

yasuhiro@ysenba:~$ docker run -it --rm python:3.12-slim bin/bash
root@a6d74e3bba5a:/# python3 -m venv dtf
root@a6d74e3bba5a:/# source dtf/bin/activate
((dtf) ) root@a6d74e3bba5a:/# pip install tensorflow[and-cuda]

https://zenn.dev/kariya_mitsuru/articles/1c119859604d48
Python の venv は activate しなくても使える

https://www.kagoya.jp/howto/cloud/container/dockerpython/
DockerでPythonを動かす環境構築の手順
Python用のライブラリをインストールします。
python3 -m pip install numpy
  • Docker tensorflow gpu 版構築まとめ コンテナ に進む
  • miniconda + tensorflow 2.20 コンテナ構築 に戻る
  • Docker ya-p312t コンテナ動作確認用ファイル作成 に戻る
  • python 3.12 tensorflow 2.20 docker-compose 作成 に戻る
  • python 3.12 tensorflow 2.20 コンテナ作成 に戻る
  • miniconda3 python 3.11 docker-compose 作成 に戻る
  • Docker yamat-mini コンテナ動作確認用ファイル作成 に戻る
  • docker-compose mini 拡張 に戻る
  • docker-compose mini ファイル実行 に戻る
  • docker-compose を使ってマウントの指定 に戻る
  • Docker volume バインドマウント に戻る
  • Docker volume に戻る
  • Docker イメージ d-minic コンテナを起動 に戻る
  • dockerfile で continuumio/miniconda3 コンテナを起動 に戻る
  • docker-miniconda3 コンテナの構築 に戻る
  • NVIDIA Container Toolkit インストール準備まとめ に戻る
  • Docker コンテナ miniconda3 に戻る
  • 70VPS に戻る