Docker のインストールと GPU のサポート

1. Dockerのインストール手順(ubuntu18.04環境)

清華ミラードッカーのインストール: docker-ce | ミラーステーションの使用ヘルプ | 清華大学オープンソースソフトウェアミラーステーション | 清華オープンソースミラー

1. apt 公式ライブラリの docker バージョンは比較的古い可能性があるため、最初に存在する可能性のある古いバージョンをアンインストールします。

sudo apt-get remove docker docker-engine docker-ce docker.io

2.ubuntuのaptソースインデックスを更新する

sudo apt-get update

3. apt が HTTPS 経由でウェアハウスを使用できるようにインストール パッケージを構成します。

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

4. Docker公式GPGキーを追加する

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

5. Docker 安定版ウェアハウスをセットアップする

sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

6. apt ソースインデックスを再度更新します

sudo apt-get update

7. 最新バージョンの Docker CE (コミュニティ エディション) をインストールします。

sudo apt-get install docker-ce

8. 指定したバージョンの docker をインストールする場合は、次の手順を実行します (必要ない場合は、この手順をスキップできます)。

apt-cache madison docker-ce    # 列出可用的docker-ce版本
sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu    #安装指定的docker版本

9. hello-world イメージをプルして Docker コンテナをテストします

sudo docker run hello-world

このステップでエラーが報告された場合: (イメージ 'hello-world:latest' がローカルに見つかりません)

次の情報が表示された場合は、docker が正常にインストールされ、正常に実行されていることを意味します。この記事を参照してください。

最後に、次の情報が表示されたら、docker が正常にインストールされ、正常に実行されていることを意味します。

 10. Docker サービスを開始し、起動時に開始するように設定します。

sudo systemctl start docker    # 启动
sudo systemctl stop docker     # 停止
sudo systemctl restart docker  # 重启
sudo systemctl enable docker   # 设置开机启动

2. Daoker は root 権限を設定します (オプション)

root権限なしでdockerを作成します。毎回sudoが必要です

Docker デーモン (Docker デーモン プロセス。Docker 全体のバックグラウンドとして理解できます) は、通信用の TCP ポートではなく Unix Socket (Unix ソケット、通信方式) にバインドされます。Unix Socket の場合、デフォルトでは root ユーザーに属します。他のユーザーが使用したい場合は、各コマンドの前に sudo を追加する必要があります。このようにして、Docker デーモンは常に root ユーザーで実行されます。
これはさらに面倒で、すべてのコマンドに sudo を追加してパスワードを何度も入力したくありません。
前回の記事によると、Unix Socket はデフォルトで root ユーザーに属するため、ユーザーを調整できます。
つまり、docker という名前の新しい Unix ユーザー グループを作成し (もちろん、別の名前を付けることもできます)、このユーザー グループにユーザーを追加します。これにより、デーモンの起動時に、使用される Unix ソケットがこのユーザーのものになります。 root ではない場合、sudo は必要ありません。

注: このようなアプローチはセキュリティ上の問題を引き起こす可能性があります。詳細については、 ドキュメント「Docker Daemon Attack Surface」を参照してください。

コマンドを入力するたびに sudo を追加する必要がなくなります

方法 1 (これはテスト済み):

Docker ユーザー グループを作成し、ユーザーを追加します。

sudo groupadd docker
sudo usermod -aG docker $USER

アカウントからログアウトし、再度ログインして、ユーザー グループ設定の変更を有効にします。

仮想マシンを使用している場合は、設定の変更を有効にするために仮想マシンを再起動することをお勧めします。Linux、
MacOS、Windows などの特定のディストリビューションなどのデスクトップ オペレーティング システムを使用している場合は、完全にログを記録してください。一度アカウントを削除し、再度ログインすると設定の変更が有効になります。
Linux を使用している場合は、次のようなコマンドを使用して変更を有効にすることもできます。

newgrp docker 

方法 2: ユーザー グループを構成します (これはテストされていません)。

sudo usermod -a -G docker $USER     

sudo が必要ないかどうかを確認します。

docker run hello-world

このコマンドは、テスト Docker ユース ケースをダウンロードし、さまざまなテストの結果を表示します。プロンプトの結果が正しければ、構成は正常です。

3. Docker で Nvidia GPU を使用する

docker がバージョン 19.03 をリリースしてから、docker で GPU を使用するのが便利になりました。docker に GPU を使用するオプションが追加されました。コンテナ内で GPU を使用するために必要なオプションは 1 つだけであり、複雑な構成を省略して使用の難しさを大幅に軽減します。

docker19.03 以降、nvidia-docker をインストールする必要はなくなりました。NVIDIA-CONTAINER-RUNTIMEをインストールするだけで利用でき、docker-composeに対応しています。

1.NVIDIA-CONTAINER-RUNTIMEをインストールする

1. サポートされているオペレーティング システムとバージョンを確認し、対応するオプションに従ってソースを追加します Ubuntu は Debian をベースにしています。

公式手順 構成ソフトウェア パッケージ ウェアハウスのアドレス:移行通知 | nvidia-container-runtime

2. 次に、次のコマンドを実行します。

apt-get install nvidia-container-runtime

3. nvidia-container-runtime が正常にインストールされているかどうかを確認します

which nvidia-container-runtime-hook

次に、Docker デーモンを再起動します

2. GPUをコンテナに公開する

コンテナーを実行するときに、--gpuパラメーターを追加して GPU サポートを有効にします。

--gpus を使用すると、コンテナーの起動時にホスト上で GPU にアクセスできるようになり、使用する GPU の数を構成できます

# 使用所有GPU
docker run -it --rm --gpus all ubuntu nvidia-smi

# 使用两个GPU
docker run --gpus 2 ubuntu  nvidia-smi

# 使用指定 GPU
docker run --gpus '"device=1,2"' ubuntu  nvidia-smi

すべての GPU をコンテナーに公開し、「nvidia-smi」によって返された結果を呼び出します。これは、doker が GPU を呼び出すことができることを意味します。

おすすめ

転載: blog.csdn.net/ytusdc/article/details/131854074