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はボールのスライディングクロス効果を実現します

推薦する

負のz-indexを持つ要素がクリックできない問題の解決策

最近、ポップアップ広告に取り組んでいました。デフォルト ページには z-index が設定されていな...

Celery と Docker を使用して Django で定期的なタスクを処理する方法

Django アプリケーションを構築して拡張していくと、必然的に特定のタスクをバックグラウンドで自動...

背景画像に CSS3 変換を適用するためのソリューション

CSS 変換は便利ですが、背景画像にはまだ適用されていません。この投稿では、背景画像を回転させたい場...

Vue の状態管理: Vuex の代わりに Pinia を使用する

目次1. ピニアとは何ですか? 2. Piniaは使いやすい3. ユーザーエクスペリエンス1. ピニ...

CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法

この記事では、Spring boot + Maven プロジェクトのデプロイメントを例に、Code ...

セマンティック XHTML タグの紹介

まず最初に指摘しておきたいのは、人間は視覚的な区分を通じてコン​​テンツの意味を判断できるが、検索エ...

テキストの両側に水平線を描くための CSS のサンプルコード

この記事では、テキスト中央の両側に水平線を引く効果を実現する CSS のサンプルコードを紹介し、皆さ...

MySQL 8.0.17 のインストールと設定のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.17のインストールと設定のグラフィックチュートリアルを記...

Navicatを使ってMySQLを操作する方法

目次序文: 1. Navicatの紹介2. シンプルなチュートリアルの共有接続管理ライブラリテーブル...

MySQLデータベースのSYNフラッディング問題を解決する

Syn 攻撃は、最も一般的で最も簡単に悪用される攻撃方法です。TCP プロトコルの欠陥を利用して、偽...

MySQL は低速クエリを可能にします (EXPLAIN SQL ステートメントの使用の概要)

今日、データベース操作はますますアプリケーション全体のパフォーマンスのボトルネックになりつつあり、こ...

JavaScript でプロパティハイジャックを実装する方法 defineProperty

目次序文記述子getとsetの詳細な説明オブジェクトの属性の乗っ取りオブジェクトのすべてのプロパティ...

HTML の基本的な使用法には、リンク、スタイルシート、span、div などが含まれます。

1. リンクハイパーテキスト リンクは HTML において非常に重要です。基本的な形式は次のとおりで...

Vueを使い始める際に習得する必要がある知識について簡単に説明します

最も人気のあるフロントエンド フレームワークの 1 つとして、Vue は多くのフロントエンド開発エン...

HTML の著作権記号のフォント選択問題 (著作権記号をより美しくする方法)

1. 問題を発見する&copy; は HTML の著作権記号ですが、間違ったフォントを選択す...