NVIDIA/nvidia-docker

Debian10: No package nvidia-docker2 available.

liwzhi opened this issue · 23 comments

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo

sudo yum install -y nvidia-docker2
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
No package nvidia-docker2 available.
Error: Nothing to do

Client:
Version: 1.8.2
API version: 1.20
Package Version: docker-1.8.2-7.el7.centos.x86_64
Go version: go1.4.2
Git commit: bb472f0/1.8.2
Built:
OS/Arch: linux/amd64

Server:
Version: 1.8.2
API version: 1.20
Package Version:
Go version: go1.4.2
Git commit: bb472f0/1.8.2
Built:
OS/Arch: linux/amd64

flx42 commented

The full instructions are:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
  sudo tee /etc/yum.repos.d/nvidia-docker.repo

You can't use docker 1.8 by the way.

Thanks for the quick reply:

GNU/Linux x86_64 with kernel version > 3.10
Docker >= 1.12
NVIDIA GPU with Architecture > Fermi (2.1)
NVIDIA drivers ~= 361.93 (untested on older versions)

I'm trying to use the same commands for Debian/Buster:

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

distribution just returns debian and I've got an empty nvidia-docker.list.
What did I miss?

flx42 commented

We don't have packages for debian buster right now. Use distribution=debian9 instead.
But be aware that you will have to build the libnvidia-container deb packages manually:
#660
We need to release new packages.

I could help to upgrade the packages for buster...
Is it possible to get also the source package to start with?

flx42 commented

We have everything we need, don't worry, we just don't have much time to do it right since there is the GPU Technology Conference next week.

this issue is still affecting debian testing and sid, because the VERSION_ID entry isn't anymore available in more recent versions of /etc/os-release (see: https://sources.debian.org/src/base-files/10.1/etc/os-release/).

one possible workaround could be seen in utilizing lsb_release -r or /etc/debian_version, but both of them are just reporting [different] verbal release names -- and unfortunately both of them do not unlock the door.

i also wouldn't see it as a tragedy, if people have to manually choose between two or three static variants on your instruction page (https://nvidia.github.io/nvidia-docker/). but just getting this 404 error message, before you finally find this ticket and the "debian9" key to paradise, is indeed a little bit frustrating...

flx42 commented

this issue is still affecting debian testing and sid, because the VERSION_ID entry isn't anymore available in more recent versions of /etc/os-release

I think it was also the case with stretch in the past, but will change when buster is released.

but just getting this 404 error message, before you finally find this ticket and the "debian9" key to paradise, is indeed a little bit frustrating...

You're right, we need to be more clear in the documentation. A 404 means that your distro isn't supported. But we need to better document which other repo you might try.
I this case we could also symlink debian -> debian9 on the repository.

I this case we could also symlink debian -> debian9 on the repository.

yes -- this would be IMHO a very useful improvement.

it's also quite handy, if you generate static index.html file listings at least in top directories for better human debugging and control on GitLab pages and similar services, which do not allow directory browsing otherwise. a simple tree -H ...-one-liner in the CI scripts usually does the trick...

btw.: because of #660 you still have to compile libnvidia-container yourself right now, to get it going on debian testing, just as you mentioned already...

Hello, any news about working packages for Buster?

flx42 commented

@Ricordel sorry, didn't have time to test on buster recently. Just use distribution=debian9 for now.

this quick hack before proper packaging worked from me I just added debian buster only for the 18.09 docker version:

diff --git a/Makefile b/Makefile
index a40edbf..a68210d 100644
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@ DIST_DIR  := $(CURDIR)/dist
 .NOTPARALLEL:
 .PHONY: all

-all: ubuntu18.04 ubuntu16.04 ubuntu14.04 debian9 debian8 centos7 amzn2 amzn1
+all: ubuntu18.04 ubuntu16.04 ubuntu14.04 debian10 debian9 debian8 centos7 amzn2 amzn1

 ubuntu18.04: $(addsuffix -ubuntu18.04, 18.09.0 18.06.1 18.06.0 18.03.1 17.12.1)

@@ -19,6 +19,8 @@ ubuntu16.04: $(addsuffix -ubuntu16.04, 18.09.0 18.06.1 18.06.0 18.03.1 18.03.0 1

 ubuntu14.04: $(addsuffix -ubuntu14.04, 18.06.1 18.06.0 18.03.1 18.03.0 17.12.1 17.09.1 17.06.2 17.03.2)

+debian10: $(addsuffix -debian10, 18.09.0)
+
 debian9: $(addsuffix -debian9, 18.09.0 18.06.1 18.06.0 18.03.1 18.03.0 17.12.1 17.12.0 17.09.1 17.09.0 17.06.2 17.03.2)

 debian8: $(addsuffix -debian8, 18.06.1 18.06.0 18.03.1 18.03.0 17.12.1 17.09.1 17.06.2)
@@ -164,6 +166,24 @@ amzn1: $(addsuffix -amzn1, 18.06.1.ce 18.03.1.ce 17.12.1.ce 17.09.1.ce 17.06.2.c
                         -t "nvidia/nvidia-docker2/ubuntu:14.04-docker18.06.0" -f Dockerfile.ubuntu .
        $(DOCKER) run --rm -v $(DIST_DIR)/ubuntu14.04:/dist:Z "nvidia/nvidia-docker2/ubuntu:14.04-docker18.06.0"

+%-debian10:
+       $(DOCKER) build --build-arg VERSION_ID="buster" \
+                        --build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)+docker$*-1" \
+                        --build-arg DOCKER_VERSION="docker-ce (= $*~ce-0~debian)" \
+                        --build-arg PKG_VERS="$(VERSION)+docker$*" \
+                        --build-arg PKG_REV="$(PKG_REV)" \
+                        -t "nvidia/nvidia-docker2/debian:10-docker$*" -f Dockerfile.debian .
+       $(DOCKER) run --rm -v $(DIST_DIR)/debian10:/dist:Z "nvidia/nvidia-docker2/debian:10-docker$*"
+
+18.09.0-debian10:
+       $(DOCKER) build --build-arg VERSION_ID="buster" \
+                        --build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)+docker18.09.0-1" \
+                        --build-arg DOCKER_VERSION="docker-ce (= 5:18.09.0~3-0~debian-buster)" \
+                        --build-arg PKG_VERS="$(VERSION)+docker18.09.0" \
+                        --build-arg PKG_REV="$(PKG_REV)" \
+                        -t "nvidia/nvidia-docker2/debian:10-docker18.09.0" -f Dockerfile.debian .
+       $(DOCKER) run --rm -v $(DIST_DIR)/debian10:/dist:Z "nvidia/nvidia-docker2/debian:10-docker18.09.0"
+
 %-debian9:
        $(DOCKER) build --build-arg VERSION_ID="9" \
                         --build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)+docker$*-1" \

them make and sudo dpkg -i dist/debian10/nvidia-docker2_2.0.3+docker18.09.0-1_all.deb

small guide (https://blog.bartab.fr/install-nvidia-docker-on-debian-buster/) on how to get it running on Buster, mainly for issue #876 and #854 you may face on that distribution, hope it helps

@flx42

Just use distribution=debian9 for now.

this doesn't work anymore for debian "testing" resp. debian10/'buster' setups.
in the meanwhile you now have to utilize the provided 'buster' docker-ce packages on a debian testing system. the debian9/jessie packages will not work anymore!

and because the "nvidia-docker" binary packages in your repository strictly depend on jessie vesion-suffix of docker-ce (which will work on this kind of machines), you have to modify and compile nvidia-docker yourself, if you want to use it on debian testing.

the necessary changes are rather trivial (see: euri10s patch), nevertheless i would really like to see a more user friendly support for debian testing out of the box.

i don't think, debian "testing" should be understood as an exotic solution, which shouldn't get offical support as long as the final release becomes published. if you do e.g. ML development or similar work -- i.e. those kind of stuff, where nvidia-docker really makes sense! --, you'll very likely prefer access to more recent software instead of always insisting on horrible outdated final releases...

Hope Debian 10 docker-nvidia2 will be availaible next month with the official release of stable Debian 10 Buster :)

then we'll be on sid and will have to do it again .-)

Hey, debian buster is out today. Can this finally be fixed?

sjdrc commented

Yeah, this is pretty annoying that it's still not officially supported on stable debian.

Debian10 packages are now available. Sorry for the delay!

hello I'm having trouble with a newer version of this. if there are any Linux ninjas kind enough to give me a hand ?

The full instructions are:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
  sudo tee /etc/yum.repos.d/nvidia-docker.repo

You can't use docker 1.8 by the way.

I'm having a similar problem and could use a hand

I'm having a similar problem. would be very grateful to get my system back online

@dapperdanman87 could you provide more input as to what you're seeing and what the expected behavior is?