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

推薦する

VMware ワークステーションの仮想マシンの互換性の問題に対する解決策

VMware ワークステーションの仮想マシンの互換性の問題を解決するにはどうすればよいですか?ノート...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

個人ブログシステムを構築するためのDockerの超シンプルな実装

Dockerをインストールするyumパッケージを最新バージョンに更新します: sudo yum up...

ウェブ標準学習リソースの素晴らしいコレクション

これらの仕様は、下位互換性のあるドキュメントを Web 上で公開し、できるだけ幅広いユーザーがアクセ...

Ubuntuのバックアップ方法(4種類)のまとめ

方法1:リスピンを使用するには、次の手順に従ってください。 sudo add-apt-reposit...

Vue が学ぶべき知識ポイント: forEach() の使用

序文フロントエンド開発では、目的のコンテンツを取得するためにループをトラバースする必要がある状況に頻...

Centos8.2 クラウド サーバー環境に Tomcat8.5 をインストールするための詳細なチュートリアル

Tomcatをインストールする前に、まずJDK環境をインストールしてくださいLinux サーバー上で...

Linux での Firewalld の高度な設定の使用に関する詳細な説明

IPマスカレードとポート転送Firewalldは2種類のネットワークアドレス変換をサポートしています...

TeamCenter12 にログインする際の 404/503 問題の解決方法

TeamCenter12はアカウントのパスワードを入力し、ログインをクリックすると、404または50...

CSS の位​​置属性 (absolute|relative|static|fixed) の概要と応用

まず、CSS3 Api の position 属性の定義を見てみましょう。 static: 特別な配...

SSH ポート転送とは何ですか?何の役に立つの?

目次序文1. ローカルポート転送2. リモートポート転送3. 動的ポート転送(SOCKS5) 4. ...

Bootstrap3.0 学習ノートテーブル関連

この記事では、Webサイトを作ったことがある人にとっては馴染みのあるテーブルについて主に説明します。...

tbodyタグの魔法はテーブルコンテンツの表示を高速化します

他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...

良いデザインについて

<br />「良いデザインとは何か」と答える 1 万人に対して、少なくとも 1 万 1 ...

MySQLパスワードを変更するいくつかの方法

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...