LoginSignup
0
2

More than 5 years have passed since last update.

nvidia-docker2にしたらnvidia-docker-composeが使えなくなった

Posted at

自分用のメモです

docker環境を更新したら、
https://github.com/eywalker/nvidia-docker-compose/issues/22
これと同じように、


urllib.error.URLError: <urlopen error [Errno 111] Connection refused>

とか言われちゃった人に

nvidia-docker2の更新が大分前なので今更感がありますが、自分が詰まったのでメモとして残します

tl;dr

nvidia-docker-composeは使わない
docker-composeのデフォルトランタイムを以下のようにして変更して使う

/etc/docker/daemon.json

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": [ ]
        }
    }
}

参考: https://github.com/eywalker/nvidia-docker-compose/issues/23

症状

nvidia-docker-composeを使用したところ、


urllib.error.URLError: <urlopen error [Errno 111] Connection refused>

と言われる。
docker、nvidia-docker、docker-compose、nvidia-docker-composeの再インストールやアップデートを試してみてもきちんと改善されない。


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

はきちんと起動する。

原因

原因はnvidia-docker2になって、nvidia-docker-pulgin( https://github.com/NVIDIA/nvidia-docker/wiki/nvidia-docker-plugin )が削除された(?)こと。これにより起動しているはずのdocker daemonにアクセスすることができなくなっていた。
nvidia-dockerではこれまでlocalhost:3476にデーモンが走っているはずだった。cudaがインストールされていない環境でも一切の変更なしにコンテナが立ち上がるために大きな実装の変更があったようだ

対策

実はnvidia-docker-composeのページ( https://github.com/eywalker/nvidia-docker-compose )にすべて記載されている。nvidia-docker-composeはもう必要なくなり、docker-composeのデフォルトのランタイムを変更してしまえばいいようだ( https://github.com/eywalker/nvidia-docker-compose/issues/23 )。

その他

初投稿です。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2