Windows11 WSL2 Ubuntu 24.04 LTS Docker miniconda3
Docker ya-p312t コンテナ動作確認用ファイル作成
ここまでで Docker ya-p312t コンテナを構築する準備が終わりました。
引き続き、このコンテナの動作確認用の 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-p312t/files/
ここに test2.py を保存します。
ファイル名は適当
test2.py
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
docker-compose ya-p312t ファイル実行
Docker ya-p312t を動作させる準備が終わりました。
Docker Compose ファイルを実行していきます。
WSL2 Ubuntu 24.04 LTS ディスクトップ日本語からターミナルを開きます。
PowerShell 7 からでもターミナルを開くことができます。
PowerShell 7 追加インスト-ル参照。
コンテナフォルダ \d-p312t に移動します。
yamada@yama:~$ cd d-p312t
移動できたら次のコマンドを入力実行します。
yamada@yama:~/d-mini-t$ docker compose up
\d-p312t にある docker-compose.yml でコンテナを構築します。
-d を付けるとバックグラウンド処理になってしまいます。
-d なしにします。
yamada@yama:~$ cd d-p312t yamada@yama:~/d-p312t$ docker compose up [+] Running 1/1 ✔ Container ya-p312t-p312t-1 Created 0.0s Attaching to p312t-1 p312t-1 exited with code 0 # docker image 構築完了 # docker p312t 起動 yamada@yama:~/d-p312t$ docker compose run --rm p312t root@8111632cdadb:/app# python3 test2.py # ここから test2.py が動作するか確認 root@8111632cdadb:/app# python3 test2.py WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1762753246.864188 464 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: 6418335140378056338 xla_global_id: -1 , name: "/device:GPU:0" device_type: "GPU" memory_limit: 2355573556 locality { bus_id: 1 links { } } incarnation: 9220710843188696303 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
[意味・和訳]
TensorFlow (ログ記録に Abseil ライブラリを使用している)によって
生成された特定のログ記録メッセージが、ログ記録システムが完全に初期化される前に
標準エラー出力ストリーム(STDERR) に送信されていることを示しています。
これは無視して問題ありません。
この無害な警告は無視します。
docker-compose yamat-mini ファイル実行Ⅱ
他の方法でも動作確認をしましょう。
nvidia-smi で
GPU の Driver Version 等も確認できます。
root@8111632cdadb:/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 で停止できます。
root@8111632cdadb:/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 ya-p312t ファイル実行Ⅱ
おまけにもう一つ他の方法でも動作確認をしましょう。
以下の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 コンテナ ya-p312t が完成しました。
なお、2025/11/13日現在、tensorflow gpu 版の最新は
python 3.12、tensorflow 2.20
となっています。
最初は docker で continuumio/miniconda3 のイメージを利用したコンテナを作成することを目指していましたが
いつの間にか python:3.12-slim のイメージを利用したコンテナが出来上がってしまいました。
話を戻して、continuumio/miniconda3 のイメージを利用した tensorflow gpu 版の最新を作成して行きます。