Windows11 WSL2 Ubuntu 24.04 LTS Docker miniconda3
miniconda3 python 3.11 docker-compose 作成
ここまでで、miniconda3 python 3.11 Dockerfile ができました。
引き続き、miniconda3 python 3.11 docker-compose ファイルを作成します。
まずは docker-compose を作成するためのフォルダを作成します。
ホスト OS のユーザ領域に d-minic-t/ [名前は適当です]のフォルダを作成します。
この中に、Dockerfile、docker-compose.yml、files[名前は適当]フォルダを作成します。
files の中にはコンテナ内で動作させたい(必要な)ファイルを保存します。
ファイル構成は下記のようになります。
/home/yamada/d-mini-t/
├ Dockerfile
├ docker-compose.yml
└ files/
└ test.py
miniconda3 python 3.11 Dockerfile ファイル作成
まずは Dockerfile ファイルを作成します。
自分の PC Windows で TeraPad 等を使用して
Dockerfile ファイル
docker-compose mini 拡張
の中で作成しました。
最後の部分を参照。
これを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\d-mini-t
ここに Dockerfile を保存します。
ファイル名は必ず
Dockerfile
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
docker-compose.yml ファイル作成
Docker Compose という Docker 立ち上げ設定書の機能を利用して、コンテナを立ち上げます。
今回は半角スペースの数を2と決め、2つづつ字下げをしています。
docker-composeのdeploy以下でGPU runtimeの設定
が参考になります。
内容は以下の通りです。
name: yamat
services:
mini:
build: .
volumes:
- ./files:/app
deploy:
resources:
# GPUデバイスの予約設定
reservations:
devices:
# NVIDIAドライバを使用するデバイスの設定
- driver: nvidia
device_ids: ["0"]
capabilities: [gpu]
- services:
Docker Compose は複数の Docker 環境を立ち上げることができます。
今回は mini [名前は適当]と言うコンテナだけを立ち上げますが、ここに続けて記述することにより、 他のコンテナも立ち上げることができます。 - name: yamat
Docker Compose のプロジェクト名です。
同じコンテナでも使う人が違う場合もありますよね。
今回は yamat という名前を付けました。 - build: .
Dockerfile ファイルを元に立ち上げて行きますよと宣言します。
- volumes:
「:」を挟んで左側の値 ./files
ローカルディレクトリ
/home/yamada/d-minic-c/files
と右側の値
WORKDIR /app
(Docker 内ディレクトリ)
を接続する設定を記述します。
ローカル側は相対パス、サーバー側は絶対パスで記述します。 - volumes の効用
Docker コンテナの中の世界に対して変更を加えたい!と思うことはしばしば起こります。
この要望に答えてくれるのが volumes 機能です。
今回の例では、files フォルダに変更内容を記述したファイルを置いてあげれば良いのです。 - deploy:
deploy 設定をすると、ユーザはサービス上に追加のメタ(設定)データを宣言できるようになります。
ユーザが必要とする設定に一致するデータを取得できます。
deploy 時の振る舞いをまとめる箱と考えます。
- resources:
resources 設定は、プラットフォーム上でコンテナを実行するにあたり、物理リソースの制限を設定します。
いくつかの制限を設定できますが今回は最低保証 reservations 設定をします。 - reservations:
GPU デバイスの予約設定をします。
プラットフォームは少なくとも設定した容量をコンテナに対して確実に割り当てる必要があります。
起動時に「これだけは確保して」とプラットフォームに伝える領域です。 - devices:
devices はコンテナが利用できるデバイスの予約を設定します。
NVIDIA ドライバを使用するデバイスの設定をします。
- driver: nvidia
driver は nvidia を使用。
Docker デーモン側で NVIDIA Container Toolkit が導入済みであることが前提です。
- device_ids:
device_ids: ["0"]
0 番の GPU を使用。
私の場合、そもそも1個しかない。
特定の 2/4 枚を使う場合は
device_ids: ["0", "3"] - capabilities:
capabilities: [gpu]
「GPU」という能力を持つデバイスが必要。
これがないと予約が成立しません。
gpu 設定を有効にすると、コンテナは GPU リソースを使用することが許可されます。
これにより、GPU を利用した計算や処理が可能になります。
例えば、深層学習モデルのトレーニングや推論を行う際に必要です。
自分の PC Windows で TeraPad 等を使用して
docker-compose.yml ファイル(上記内容)
を作成しこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\d-mini-t/
ここに docker-compose.yml を保存します。
ファイル名は必ず
docker-compose.yml
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
ここまでで Docker yamat-mini コンテナを構築する準備が終わりました。
引き続き、このコンテナの動作確認用の python ファイルを作成します。