Category: docker

  • nvidiaのドライバーを更新したのでdocker環境も再インストールしたよ

     一つまえの記事でUbuntu(20.04)のnvidia関連パッケージを一度すべて削除してしまったので、docker関係の環境も再インストールしなければいけなかった。

     下記に従って実行してみた。自分の記載はあやしいのと、当然下記のnvidiaのリンク先のほうが記載が新しくなってる可能性があるので、なにか変だと思ったらnvidia.comにあたったほうが良い。
    https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

    1.パッケージのインストール

    $ sudo apt install nvidia-container-toolkit

    2.設定の変更

    $ sudo nvidia-ctk runtime configure --runtime=crio

    3.dockerデーモンの再起動

     $ sudo systemctl restart docker

    4.確認する

    下記でGPUの情報が ホストでnvidia-smiを実行したときと同じように表示されればOKのはず

    $ sudo docker run –rm –runtime=nvidia –gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
    Sat Apr  6 16:34:33 2024       
    +—————————————————————————————–+
    | NVIDIA-SMI 550.54.15              Driver Version: 550.54.15      CUDA Version: 12.4     |
    |—————————————–+————————+———————-+
    | 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 RTX 3060        Off |   00000000:04:00.0  On |                  N/A |
    |  0%   49C    P8             11W /  170W |     539MiB /  12288MiB |      0%      Default |
    |                                         |                        |                  N/A |
    +—————————————–+————————+———————-+

    ホストOS上でnvidia-smiを実行したときが下記。大丈夫そう。

    $ nvidia-smi
    Sun Apr  7 01:40:48 2024       
    +—————————————————————————————–+
    | NVIDIA-SMI 550.54.15              Driver Version: 550.54.15      CUDA Version: 12.4     |
    |—————————————–+————————+———————-+
    | 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 RTX 3060        Off |   00000000:04:00.0  On |                  N/A |
    |  0%   50C    P5             18W /  170W |     560MiB /  12288MiB |      2%      Default |
    |                                         |                        |                  N/A |
    +—————————————–+————————+———————-+

     

  • docker-composeで既存のnetworkに接続する

    docker-composeを利用してコンテナを起動した場合、通常だとdocker-compose.yml(プロジェクト)単位で
    内部ネットワークが作成される。これを、例えば別のdocker-compose.ymlファイルから起動されたコンテナのnetworkの中でコンテナを作成するには、network設定をdocker-compose.yml内に記述する

    既存のネットワークの一覧

    $ docker network ls
    

    コマンドを実行すると、以下のようにネットワークの一覧が表示される。例ではexisting_nw_defaultに接続するとする。

    $ docker network ls
    NETWORK ID          NAME                DRIVER
    a36b706eb5a6        bridge              bridge              
    7ee0cd187fbd        host                host                
    39be267aeb70        existing_nw_default      bridge              
    bb39f75ad969        none                null
    

    既存のネットワークに接続するdocker-compose.ymlの例

    デフォルトでexisting_nw_default内にコンテナを作成するには、docker-compose.yml内に以下のようなnetworkの記述を追加すれば良い。

    networks:
      default:
        external:
          name: existing_nw_default
    

     参照:https://docs.docker.com/compose/networking/