Windows11 WSL2 Ubuntu 24.04 LTS Docker miniconda3

python 3.12 tensorflow 2.20 docker-compose 作成

ここまでで、python 3.12 tensorflow 2.20 Dockerfile ができました。
引き続き、docker-compose ファイルを作成します。
まずは docker-compose を作成するためのフォルダを作成します。
ホスト OS のユーザ領域に d-p312t/ [名前は適当です]のフォルダを作成します。
この中に、Dockerfile、docker-compose.yml、files[名前は適当]フォルダを作成します。
files の中にはコンテナ内で動作させたい(必要な)ファイルを保存します。
ファイル構成は下記のようになります。
/home/yamada/d-p312t/
 ├ Dockerfile
 ├ docker-compose.yml
 └ files/
   └ test.py

python 3.12 tensorflow 2.20 Dockerfile ファイル作成

まずは Dockerfile ファイルを作成します。

自分の PC Windows で TeraPad 等を使用して
Dockerfile ファイル
python 3.12 tensorflow 2.20 コンテナ作成
の中で作成しました。
最後の部分を参照。
これ・・① を保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\d-p312t
ここにこの Dockerfile・・①を保存します。
ファイル名は必ず
Dockerfile
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。

docker-compose.yml ファイル作成

Docker Compose という Docker 立ち上げ設定書の機能を利用して、コンテナを立ち上げます。
今回は半角スペースの数を2と決め、2つづつ字下げをしています。
docker-composeのdeploy以下で GPU runtime の設定
が参考になります。
内容は以下の通りです。


services:
  name: ya-p312t
  p312t:
    build: .
    volumes:
      - ./files:/app
      
    deploy:
      resources:
        # GPUデバイスの予約設定
        reservations:
          devices:
            # NVIDIAドライバを使用するデバイスの設定
            - driver: nvidia
              device_ids: ["0"]
              capabilities: [gpu]      

  1. services:

    Docker Compose は複数の Docker 環境を立ち上げることができます。
    今回は p312t [名前は適当]と言うコンテナだけを立ち上げますが、ここに続けて記述することにより、 他のコンテナも立ち上げることができます。

  2. name: ya-p312t

    Docker Compose のプロジェクト名です。
    同じコンテナでも使う人が違う場合もありますよね。
    今回は ya-p312t という名前を付けました。

  3. build: .

    Dockerfile ファイルを元に立ち上げて行きますよと宣言します。

  4. volumes:

    「:」を挟んで左側の値 ./files
    ローカルディレクトリ
    /home/yamada/d-p312t/files
    と右側の値
    WORKDIR /app
    (Docker 内ディレクトリ)
    を接続する設定を記述します。
    ローカル側は相対パス、サーバー側は絶対パスで記述します。

  5. volumes の効用

    Docker コンテナの中の世界に対して変更を加えたい!と思うことはしばしば起こります。
    この要望に答えてくれるのが volumes 機能です。
    今回の例では、files フォルダに変更内容を記述したファイルを置いてあげれば良いのです。

  6. deploy:

    deploy 設定をすると、ユーザはサービス上に追加のメタ(設定)データを宣言できるようになります。
    ユーザが必要とする設定に一致するデータを取得できます。
    deploy 時の振る舞いをまとめる箱と考えます。

  7. resources:

    resources 設定は、プラットフォーム上でコンテナを実行するにあたり、物理リソースの制限を設定します。
    いくつかの制限を設定できますが今回は最低保証 reservations 設定をします。

  8. reservations:

    GPU デバイスの予約設定をします。
    プラットフォームは少なくとも設定した容量をコンテナに対して確実に割り当てる必要があります。
    起動時に「これだけは確保して」とプラットフォームに伝える領域です。

  9. devices:

    devices はコンテナが利用できるデバイスの予約を設定します。
    NVIDIA ドライバを使用するデバイスの設定をします。
    - driver: nvidia
    driver は nvidia を使用。
    Docker デーモン側で NVIDIA Container Toolkit が導入済みであることが前提です。

  10. device_ids:

    device_ids: ["0"]
    0 番の GPU を使用。
    私の場合、そもそも1個しかない。
    特定の 2/4 枚を使う場合は
    device_ids: ["0", "3"]

  11. 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-p312t\
ここに docker-compose.yml を保存します。
ファイル名は必ず
docker-compose.yml
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。

ここまでで Docker p312t コンテナを構築する準備が終わりました。
引き続き、このコンテナの動作確認用の python ファイルを作成します。


  • Docker ya-p312t コンテナ動作確認用ファイル作成 に進む
  • 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 に戻る