无法在仿生 Ubuntu 18.04 LTS 上安装 nvidia-docker2

无法在仿生 Ubuntu 18.04 LTS 上安装 nvidia-docker2

我是新手Docker,并且使用 的经验有限Linux。尝试启动GIT项目(托管在 Github 上的机器学习项目)。该项目使用 GPU (Nvidia) 并依赖于Docker和 ,nvidia-docker2并以Python (3.5).

自述文件.md我成功地继续,直到安装时出现错误nvidia-docker2。 (自述文件的第一部分(包括安装)nvidia-docker2位于上面的链接中)。

为了详细说明一下,README.md 文件有一个关于如何运行项目的分步安装指南,它从安装 nvidia 驱动程序和其他库开始,我可以安装这些库并验证它们是否正常工作。但在安装时nvidia-docker2

 sudo apt-get install -y nvidia-docker2

我收到以下错误:

 The following packages have unmet dependencies:
 nvidia-docker2 : Depends: docker-ce (= 18.03.1~ce~3-0~ubuntu) but 
                    18.05.0~ce~3-0~ubuntu is to be installed or
                   docker-ee (= 18.03.1~ee~3-0~ubuntu) but it is not 

欢迎任何帮助评论!请参阅下面的一些其他详细说明,在帖子的末尾,我描述了我解决此问题的一些尝试。

谢谢!



一些阐述:

我到达了必须安装 docker 的部分并且进展顺利(引用自自述文件.md)我跑:

sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce
sudo docker run hello-world
sudo usermod -a -G docker $USER

它工作正常,我可以验证:

 sudo apt-get install -y nvidia-docker2

所以当我检查时

sudo docker version

我得到了我拥有的 Bionic ubuntu 的最新 docker。

Client:
 Version:      18.05.0-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   f150324
 Built:        Wed May  9 22:16:13 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.05.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   f150324
  Built:        Wed May  9 22:14:23 2018
  OS/Arch:      linux/amd64
  Experimental: false

然后我可以检查 docker 是否已设置并且可以运行:

 sudo docker run hello-world

所以我得到:

 Hello from Docker! 
 [...]

但是,当我继续执行 README.md 上必须安装的下一个指令块时,nvidia-docker2出现错误:

我跑

 docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
 sudo apt-get purge -y nvidia-docker
 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
 distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
 curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia- 
 docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
 sudo apt-get update

最后:

 sudo apt-get install -y nvidia-docker2

出现错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvidia-docker2 : Depends: docker-ce (= 18.03.1~ce~3-0~ubuntu) but     18.05.0~ce~3-0~ubuntu is to be installed or
                       docker-ee (= 18.03.1~ee~3-0~ubuntu) but it is not     installable
E: Unable to correct problems, you have held broken packages.

我试图解决这个问题:

  • 我用谷歌搜索了我的问题并找到了这个在 nvidia-github 上。票证已关闭,但是(可能是由于缺乏 Linux 经验)我可以理解他们的真正意思——Ubuntu18.04nvidia-docker2根本不支持吗?
  • 一样的,最后一篇文章由摇滚乐建议安装docker.io而不是安装docker-ce,这应该可以解决nvidia-docekr2问题。我遵循他的建议,即安装docker.io (我也/etc/apt/sources.list按照 rockper 的建议进行编辑)。然后我可以验证我是否已成功安装docker.io,即:

 sudo docker version


 Client:
 Version:    17.12.1-ce
 API version:    1.35
 Go version:    go1.10.1
  Git commit:    7390fc6
  Built:    Wed Apr 18 01:23:11 2018
  OS/Arch:    linux/amd64

 Server:
  Engine:
  Version:    17.12.1-ce
  API version:    1.35 (minimum version 1.12)
  Go version:    go1.10.1
  Git commit:    7390fc6
  Built:    Wed Feb 28 17:46:05 2018
  OS/Arch:    linux/amd64
  Experimental:    false

哪个是最新的 docker.ioubuntu 上的包。但我仍然收到错误(尽管报告有点不同)

 sudo apt-get install -y nvidia-docker2

 The following packages have unmet dependencies:
 nvidia-docker2 : Depends: docker-ce (= 18.03.1~ce~3-0~ubuntu) but it is not 
 going to be installed or
                       docker-ee (= 18.03.1~ee~3-0~ubuntu) but it is not installable
 E: Unable to correct problems, you have held broken packages.

答案1

我通过安装特定的 docker-ce (社区版)包而不是最新的(版本 18.05)解决了这个问题

sudo apt-get install -y docker-ce=18.03.13-0~ubuntu

安装 docker-ce 的完整说明可以在以下位置找到:https://docs.docker.com/install/linux/docker-ce/ubuntu/

相关内容