DockerのDocker。技術的な環境問題を解決します。

理由

多くの場合、Dockerを環境制御として使用して、サービスの実行時に環境の一貫性を確保します。
ただし、リソースと環境を同時に必要とするサービスを実行する必要がある場合があります。
例:テンソルフロー推論
コンテナからコンテナを作成するには、2つの方法があります。

方法1

Linuxdockerをコンテナーに接続します
ここに画像の説明を挿入します

概念:

Linux dockerサービスをコンテナーに直接送信して、直接呼び出すことができるようにします。

docker run hello-world -v /var/run/docker.sock:/var/run/docker.sock
単純なブルートフォースソリューション。
将来、クラウドk8sの下位サービスに変更する場合は、問題が発生します。

方法2DockerをDockerコンテナにインストールする

*これは、
ここに画像の説明を挿入します
Docker
apt update
apt installdocker.ioインストールするためのベースコンテナとしてnvcr.io/nvidia/tensorflow:20.10-tf2-py3にインストールされます

nvidiaランタイムをインストールする

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
 apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  tee /etc/apt/sources.list.d/nvidia-container-runtime.list
 
apt update

apt install nvidia-container-runtime

&はバックグラウンド実行の意味であり、フォアグラウンドはfgを介してコールバックできます。

関連する設定の調整
コンテナにはsystemctlがないため、一部のパラメータは手動で調整する必要があります。
/etc/docker/daemon.jsonで変更します。

{
    
    
 "storage-driver":"vfs"
,"runtimes":{
    
    
        "nvidia":{
    
    
                "path":"nvidia-container-runtime",
                "runtimeArgs":[]
        }
  }
}

vfsのコンテナで使用されるハードディスクフォーマットはLinux環境とは異なるため、
ランタイムを調整する必要があり、nvidiaランタイムはインストール後に自動的にインストールできず、手動で調整する必要があります

Dockerデーモンを手動で起動します

dockerd &

テスト環境が実行可能かどうか
内部コンテナーがスムーズに実行されるかどうかをテストします
dockerrun hello-world

内部コンテナがgpuリソース
dockerrunにアクセスできるかどうかをテストします--runtime = nvidia nvcr.io/nvidia/tensorflow:20.10-tf2-py3 nvidia-smi

おすすめ

転載: blog.csdn.net/wlcs_6305/article/details/115009802