質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

5024閲覧

NVIDIA Dockerのインストール時のエラーについて

退会済みユーザー

退会済みユーザー

総合スコア0

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/10/06 13:20

編集2018/10/06 23:40

前提・実現したいこと

NVIDIA Dockerのインストールを行おうとしています。
NVIDIA/nvidia-docker githubの手順にしたがってコマンドを打っています。

発生している問題・エラーメッセージ

見やすくするために改行しています
以下のエラーが出てしまい、解決方法がわかりません。

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/volumes?filters=%7B%22driver%22%3A%7B%22nvidia-docker%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied

該当のソースコード

bash

1% docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f

試したこと

docker versionコマンドでも似た形式でエラーが出てしまいました。

bash

1% docker version 2Client: 3 Version: 18.06.1-ce 4 API version: 1.38 5 Go version: go1.10.3 6 Git commit: e68fc7a 7 Built: Tue Aug 21 17:24:56 2018 8 OS/Arch: linux/amd64 9 Experimental: false 10 11Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 12Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/version: dial unix /var/run/docker.sock: connect: permission denied

ご回答を受けて試したこと

dockerコマンドはsudoをつけて打てるようになったのですが、
purge -y nvidia-dockerではパッケージを置けないというエラーが出て先に進めない状況です。

bash

1 % sudo apt-get purge -y nvidia-docker 2Reading package lists... Done 3Building dependency tree 4Reading state information... Done 5E: Unable to locate package nvidia-docker

QuickStartの部分に
Make sure you have installed the NVIDIA driver and a supported version of Docker for your distribution (see prerequisites).とあったので、
そこからたどってcuda-drivers package のインストールをしなければならないのかと考えていますが、システムにCUDA対応GPUは搭載していないので、どうすればいいかわかりません。

補足情報(FW/ツールのバージョンなど)

Ubuntu 16.04.4 LTS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2018/10/06 14:14

エラーメッセージをご覧になっていると思いますが、それをみてどのように判断して、何をしようとした・したのかもご提示いただくとよろしいかと思います。
退会済みユーザー

退会済みユーザー

2018/10/06 14:35

表示されたエラー中のURLを検索しましたが、エラーの解決法に関するページが見つけられませんでした。
tiitoi

2018/10/06 15:07

docker コマンドは docker group にユーザーを追加するか、sudo でルート権限で実行する必要があると思います。
退会済みユーザー

退会済みユーザー

2018/10/06 23:31

ありがとうございました。
tiitoi

2018/10/07 00:13

回答欄に整理しました。コンテナ管理だけであれば docker をインストールすればいいと思いますが、nvidia-docker はなにに必要なのでしょうか?
退会済みユーザー

退会済みユーザー

2018/10/07 00:50 編集

NVIDIA Docker上でTensorFlowを動作させようとしています。 その場合やはりnvidia-dockerが必要になりますか。
tiitoi

2018/10/07 00:52

TensorFlow はGPU版とCPU版があるので、CPU版を使用する場合は docker で大丈夫です。nvidia-docker はいりません。
退会済みユーザー

退会済みユーザー

2018/10/07 01:48

以前質問でお答えいただいた画像にキャプションを付ける実装例を実現したいのですが、その説明でNVIDIA Dockerのインストールから説明がされていたので...
tiitoi

2018/10/07 01:57

それは CUDA を利用する環境を構築するなら、nvidia-docker を使うのが手軽だからです。TensorFlow 自体は GPU / CPU 両方で利用できます。`pip install tensorflow` で CPU 版がインストールされます。
tiitoi

2018/10/07 02:03 編集

まとめると、Nvidia GPU を利用する場合は、nvidia-docker を使い、GPU がなく、CPU を利用する場合は普通の docker を使います。 導入は前回の質問でリンクされていたブログではなく、公式の Github を参考にしたほうがいいかと思います。(情報が変わっている場合もあります。) https://github.com/tensorflow/models/tree/master/research/im2txt
退会済みユーザー

退会済みユーザー

2018/10/07 02:12

かしこまりました。ありがとうございました。
guest

回答2

0

ベストアンサー

Docker コマンドを実行できない件

原因

Docker デーモンは Unix ソケットをバインドする。 Unix ソケットはデフォルトでは root ユーザーが保有しているため、他のユーザーがアクセスするには、sudo コマンドを使用する必要がある。Docker デーモンは常にルートユーザーとして実行される。 Docker コマンドを sudo をつけて実行したくない場合、docker という名前でグループを作成し、ユーザーをそこに追加する。 すると、Docker デーモン開始時に、docker グループからアクセスできる Unix ソケットが作成される。

参考資料: Manage Docker as a non-root user

解決策
(1) sudo で実行する。
(2) docker グループを作る。

apt-get purge ができない件について

purge -y nvidia-dockerではパッケージを置けないというエラーが出て先に進めない状況です。

この文脈では、locate は「置く」ではなく「見つける」を意味します。

可能性としては以下が考えられます。
(1) apt-getnvidia-docker をインストールしていない。
(2) nvidia-docker2 をインストールしたtのに、nvidia-docker をアンイストールしようとしている。

CUDA のインストールが別途必要なのかについて

cuda-drivers package のインストールをしなければならないのかと考えていますが、システムにCUDA対応GPUは搭載していないので、どうすればいいかわかりません。

nvidia-docker の使用に必要なものは、nvidia-driver と docker だけで大丈夫です。
nvidia-driver がインストールされているかどうかを確認するには、nvidia-smi コマンドが使用できるかどうかでわかります。
cuda は nvidia-docker run でコンテナを作成すると、使用できます。

システムにCUDA対応GPUは搭載していないので、どうすればいいかわかりません。

Nvidia 製の GPU を使用していないということでしょうか?
だとすると、nvidia-docker を使う意味はなくなると思いますが。

投稿2018/10/07 00:12

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラー内容をGoogle翻訳でもしてみると、何と無く分かりそうですが、
dockerサーバに接続しようとして、接続が拒否されたようです。

同様のエラーについてのページ

上記の対応か、
sudoをつけて実行するか
こちら
のようにするかでしょうか。

投稿2018/10/06 15:00

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/06 23:41 編集

回答ありがとうございます。 「ご回答を受けて試したこと」を質問文中に追記させていただきました。 お手数ですが、可能であればそちらもアドバイスをいただきたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問