Linux サーバー上で nvidia-docker 環境を設定するプロセスの詳細な説明

Linux サーバー上で nvidia-docker 環境を設定するプロセスの詳細な説明

Docker はコンテナに相当し、必要な動作環境に応じて対応する動作環境を構築できます。このとき、各環境は互いに分離されているため、新しいコードを実行する必要があるときに、元の実行コードに必要な環境を破棄する必要はありません。各環境は、各コンテナが分離しているのと同じように、互いに分離されています。

dockerはCPU上でのみ実行するため、GPU上で実行する必要があるサーバーにはnvidia-dockerが提供されます。

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP docker

サーバーのサブアカウントでnvidia-dockerを構築する方法については、Baiduの各場所で説明が異なります。そのため、Googleで関連文書を参照した後、サーバーのサブアカウントでnvidia-dockerを構築する方法を次に示します。

簡単に言うと、nvidia-docker をインストールするには 3 つの手順があります。

NVIDIA ドライバーをインストールする
Dockerをインストールする
nvidia-dockerをインストールする

グラフィックドライバーをインストールする

当社のサーバーやほとんどのサーバーでは、マシンのインストール時にこの手順が必要なので、この手順は直接無視します。具体的な質問については、Baidu で検索できます。

Dockerをインストールする

Dockerには、コミュニティエディション(CE)とエンタープライズエディション(EE)の2つのバージョンがあります。NVIDIAグラフィックスドライバーと同様に、適切なインストールファイルを選択するにはLinuxバージョンを知る必要があります。次のインストールバージョンは、Ubuntu 16.04にコミュニティバージョンをインストールするためのものです。

Dockerをインストールする手順は次のとおりです。

まず、コンピュータから古いバージョンのDockerを削除する必要があります。マシンにDockerをインストールするのが初めてであることが確実な場合は、この手順は省略できます。そうでない場合は、次のコマンドを実行することをお勧めします。

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

マシンに docker がインストールされていない場合は、apt-get がそのことを通知します。

次に、Docker をインストールします。新しいバージョンがリリースされたときにリポジトリから簡単に更新を取得できるように、リポジトリから Docker をインストールすることをお勧めします。

リポジトリからdockerをインストールするには、まずdockerリポジトリを作成する必要があります。通常はaptパッケージを更新する必要があります。

apt パッケージインデックスを更新する

sudo apt-get update

次に、aptがHTTP経由で通信できるようにパッケージをインストールします。

sudo apt-get インストール \
  apt-transport-https \
  ca証明書\
  カール\
  ソフトウェアプロパティ共通

次に、Dockerの公式GPGキーを追加します

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

次のコマンドが9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88を出力することを確認します。

sudo apt-key fingerprint 0EBFCD88

次に、次のコマンドを実行して、apt に安定リポジトリを使用するように指示します。

sudo aptリポジトリを追加\
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
(usb_release -cs) \
安定した"

この時点で、ナレッジベースの構築が完了しました。次に、aptパッケージインデックスを更新し、Docker CEをインストールします。

sudo apt-get update && apt-get install docker-ce

この手順の後は、インストールを待つだけです。ダウンロードには長い時間がかかります。そのままお待ちください。

dockerをインストールした後、もちろんインストールが成功したかどうかを確認する必要があります。

有名なhello-worldイメージを使用して、dockerのインストールが成功したかどうかをテストします。

sudo docker run hello-world

次のインターフェースが表示されれば、Dockerが正常にインストールされたことがわかります。

nvidia-dockerをインストールする

次のステップでは、コンテナが GPU 環境を使用できるようにする Docker のプラグインである nvidia-docker をインストールして作業を完了します。

まず、既存のnvidia-dockerを削除する必要があります

docker ボリューム ls -q -f ドライバー = nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volum = {} | xargs -r docker
sudo apt-get purge -y nvidia-docker

以前にインストールしたことがない場合は、この手順をスキップできます。

次に、必要なリポジトリを追加し、aptパッケージインデックスを更新します。

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-keyを追加 -

curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-getアップデート

最後に、nvidia-dockerをインストールします。

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

インストールが成功したら、インストールしたnvidia-dockerを確認します。

docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

次のコマンドを初めて使用する場合は、Docker が何かをダウンロードしようとしていることがわかります。

ここで、インストールプロセス全体が完了します。

速報です!かつて、サーバーのグラフィックカードがクラッシュした後、グラフィックカードのドライバーを再インストールしたところ、nvidia-docker環境が消えていたことに驚きました。しかし、次のように入力しました。

docker version

docker が存在することが示されているので、前のインストール手順に従って nvidia-docker をインストールするだけです。インストールが成功すると、幸いなことに、dockerfile に従って構築された実験環境がまだ存在していることがわかります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker に influxdb をインストールするための詳細なチュートリアル (パフォーマンス テスト)
  • Docker 国内イメージ取得とイメージ高速化のレジストリミラー設定変更の詳しい説明
  • Dockerコンテナを使用してホストネットワークにアクセスする方法
  • Dockerfile の COPY コマンドと ADD コマンドの詳細な説明
  • 最高のDockerfileを書く方法
  • Mac OS に Vagrant と Docker をインストールするチュートリアル
  • Dockerコンテナの起動後にポートマッピングを追加する
  • Docker コンテナ アプリケーションで避けるべき 10 の悪い習慣

<<:  条件によるMysqlカウントの複数の実装方法を詳細に解説

>>:  Vueはボールのスライディングクロス効果を実現します

推薦する

追加、削除、変更、クエリを実行するための JS 操作オブジェクト配列のサンプルコード

1. はじめに最近、私は友人が JSON 配列を追加、削除、変更するための簡単なページを作成するのを...

grep を使用して MySQL エラー ログ情報を取得する方法の詳細な説明

MySQL のメンテナンスを容易にするために、エラー情報を収集するためのインターフェースを提供するス...

Mysqlのマージ結果と水平スプライシングフィールドの実装手順

序文最近、レポート機能に取り組んでいたのですが、ある月に各部署に入社した人と退職した人の数をカウント...

MySQL ユーザーのホスト属性を素早く変更する方法

MySQL にリモートでログインする場合、使用するアカウントには特別な要件があります。アカウントのデ...

MySQL 8.0.18 ハッシュ結合は左/右結合をサポートしていません 左と右の結合の問題

MySQL 8.0.18 では、インデックスが作成されていないフィールドに適用でき、等価値の関連付け...

州と市町村の連携を簡単に実現するJavaScript

この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...

MySQL データベースのバックアップ プロセスに関する注意事項

今日は、データ バックアップに関連するいくつかの点について調べ、MySQL データ バックアップに関...

js 学習ノート: class、super、extends キーワード

目次序文1. es6の前にオブジェクトを作成する2. es6 後のクラス宣言3. クラスの継承4. ...

CSS3のall属性の使い方を理解する

1. 互換性以下のように表示されます。 互換性は問題ありません。IE を除き、他のブラウザは基本的に...

Angularルーティングサブルートの詳細な説明

目次1. サブルート構文2. 例1. 2つの新しいコンポーネントを作成し、その内容を変更する2. ル...

Node.js の非同期イテレータの詳細な説明

目次序文非同期イテレータとは何ですか?非同期イテレータストリームとしてページング機能を備えたAPIの...

MySQL分離の使用手順を読む

現在のトランザクションはどの履歴バージョンを読み取ることができますか?読み取りビューは、トランザクシ...

Linux で ping は成功するがポートが利用できない問題を解決する方法

ping は成功したがポートにアクセスできない場合のポート可用性検出の説明ポート可用性検出ツールの紹...

Redis を Docker コンテナとして素早くデプロイする方法

目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...

CocosCreator の新しいリソース管理システムの分析

目次1. 資源と建設1.1 クリエイターリソースファイルの基本1.2 リソースの構築2. アセットバ...