NVIDIA / nvidia-docker

Build and run Docker containers leveraging NVIDIA GPUs
Apache License 2.0
17.19k stars 2.03k forks source link

docker dependency version check fails #580

Closed mit2nil closed 6 years ago

mit2nil commented 6 years ago

1. Trying to install nvidia-docker 2.0 on Ubuntu 16.04 machine and getting failure due to mismatched docker-engine package version.

As per https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#platform-support, legacy official package docker-engine is supported but there are no details on version. I am getting failure for 17.03.0~ce-0~ubuntu-xenial which is not that old (https://www.ubuntuupdates.org/package/docker_new/ubuntu-xenial/main/base/docker-engine)

2. Commands used

nilay@localhost:~$ dpkg -l | grep docker
ii  docker-engine                                 17.03.0~ce-0~ubuntu-xenial                    amd64        Docker: the open-source application container engine
nilay@localhost:~$ sudo apt-get install -y nvidia-docker2=2.0.1+docker1.12.6-1 nvidia-container-runtime=1.1.0+docker1.12.6-1
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-engine (= 1.12.6-0~ubuntu-xenial) but 17.03.0~ce-0~ubuntu-xenial is to be installed or
                           docker.io (= 1.12.6-0ubuntu1~16.04.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
nilay@localhost:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
nilay@localhost:~$ uname -r
4.4.0-75-generic
nilay@localhost:~$ dpkg -l | grep cuda
ii  libcuda1-375                                  375.39-0ubuntu0~gpu16.04.2                    amd64        NVIDIA CUDA runtime library

3. Relevant information

 - [4.4.0-75-generic ] Kernel version from `uname -a`
 - [375.39 ] Driver information from `nvidia-smi -a`
 - [Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 11:02:43 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 11:02:43 2017
 OS/Arch:      linux/amd64
 Experimental: false
 ] Docker version from `docker version`

Let me know if I am missing any other relevant information to attach.

3XX0 commented 6 years ago

docker-engine 17.03.0 is not supported. The official stable release for the 17.03.x series is docker-ce 17.03.2

mit2nil commented 6 years ago

Hi,

how do I re-open the issue? I think this issue is still relevant.

I removed docker-engine and moved to docker.io from canonical and installed latest version 1.13.1 for Ubuntu 16.04 (https://packages.ubuntu.com/xenial-updates/docker.io) But nvidia-docker 2.0 installation is still failing.

nilay@localhost:~$ dpkg -l | grep docker
ii  docker.io                                  1.13.1-0ubuntu1~16.04.2                       amd64        Linux container runtime
ii  runc                                       1.0.0~rc2+docker1.13.1-0ubuntu1~16.04.1       amd64        Open Container Project - runtime
nilay@localhost:~$ sudo apt-get install -y nvidia-docker2=2.0.1+docker1.12.6-1 nvidia-container-runtime=1.1.0+docker1.12.6-1
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-engine (= 1.12.6-0~ubuntu-xenial) but it is not installable or
                           docker.io (= 1.12.6-0ubuntu1~16.04.1) but 1.13.1-0ubuntu1~16.04.2 is to be installed
E: Unable to correct problems, you have held broken packages.
nilay@localhost:~$ 

Do we really need to get exactly 1.12.6 nothing above that is supported? As an experiment, I also installed 1.12.6 from zesty on Ubuntu 16.04 (xenial) (https://packages.ubuntu.com/zesty/docker.io) which went fine but there was a slight difference in name and and that was not acceptable to nvidia-docker 2.0

nilay@localhost:~$ dpkg -l | grep docker
ii  docker.io                                  1.12.6-0ubuntu4                               amd64        Linux container runtime
ii  runc                                       1.0.0~rc2+docker1.13.1-0ubuntu1~16.04.1       amd64        Open Container Project - runtime
nilay@localhost:~$ sudo apt-get install -y nvidia-docker2=2.0.1+docker1.12.6-1 nvidia-container-runtime=1.1.0+docker1.12.6-1
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-engine (= 1.12.6-0~ubuntu-xenial) but it is not installable or
                           docker.io (= 1.12.6-0ubuntu1~16.04.1) but 1.12.6-0ubuntu4 is to be installed
E: Unable to correct problems, you have held broken packages.
nilay@localhost:~$ 

I also tried various stable releases of docker-ce for ubuntu 16.04 from https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ before this and none of them were supported. This is also evident from the error message in above code snippet. In which case, https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions should not say that stable releases of docker-ce are supported.

Thanks, Nilay

flx42 commented 6 years ago

Can you post the error messages with stable versions of docker-ce?

mit2nil commented 6 years ago

It just complains that it dependencies are not met without commenting on docker-ce version.

nilay@localhost:~$ dpkg -l | grep docker
ii  docker-ce                                  17.12.0~ce-0~ubuntu                           amd64        Docker: the open-source application container engine
ii  runc                                       1.0.0~rc2+docker1.13.1-0ubuntu1~16.04.1       amd64        Open Container Project - runtime
nilay@localhost:~$ sudo apt-get install -y nvidia-docker2=2.0.1+docker1.12.6-1 nvidia-container-runtime=1.1.0+docker1.12.6-1
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-engine (= 1.12.6-0~ubuntu-xenial) but it is not installable or
                           docker.io (= 1.12.6-0ubuntu1~16.04.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
nilay@localhost:~$ 
flx42 commented 6 years ago

Yes, because you asked to install version 1.12.6, and docker-ce didn't exist at this time.

mit2nil commented 6 years ago

Aha my bad. ok it is working with docker-ce.