Ubuntu

無法在仿生 Ubuntu 18.04 LTS 上安裝 nvidia-docker2

  • July 15, 2018

我是新手,Docker使用Linux. 嘗試增加GIT項目(託管在 Github 上的機器學習項目)。該項目使用 GPU (Nvidia) 並依賴於Dockernvidia-docker2Python (3.5).

README.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 的部分,它執行良好,(引用自README.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

我得到了我擁有的仿生 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.

我試圖做些什麼來解決這個問題:

  • 我用Google搜尋了我的問題,並在 nvidia-github 上找到了這張票。票已關閉,但(可能是由於缺乏對 linux 的經驗)我可以得到他們真正所說nvidia-docker2的——Ubuntu18.04 根本不支持嗎?
  • 在同一張票上, rockper的最後一篇文章建議安裝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.io這是ubuntu 上的最新 軟體包。但我仍然得到一個錯誤(雖然報告有點不同)

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.

我通過安裝特定的 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/找到

引用自:https://unix.stackexchange.com/questions/451667