Docker 标志“--gpu”在没有 sudo 命令的情况下不起作用

Docker flag "--gpu" does not work without sudo command

我是 ubuntu 用户。我使用下面的 docker 图片,tensorflow/tensorflow:nightly-gpu

如果我尝试运行这个命令

$ docker run -it --rm --gpus all tensorflow/tensorflow:nightly-gpu bash

存在权限被拒绝的错误。

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: mount error: open failed: /sys/fs/cgroup/devices/user.slice/devices.allow: permission denied: unknown.

当然,如果我使用sudo,我可以运行这个命令,但我想使用gpu而不使用sudo

有什么好的解决办法吗?请问有什么线索吗?

因为你的问题似乎只有当 运行 "--gpu".

Add/update这两段/etc/nvidia-container-runtime/config.toml

[nvidia-container-cli]
no-cgroups = true

[nvidia-container-runtime]
debug = "/tmp/nvidia-container-runtime.log"

来源:https://github.com/containers/podman/issues/3659#issuecomment-543912380

如果你完全没有 sudo 就不能使用 docker

如果您 运行 在 Linux 环境中,您需要为 docker 创建一个用户,这样您就不需要每次都使用 sudo。以下是创建步骤:

$ sudo groupadd docker

$ sudo usermod -aG docker $USER

$ newgrp docker 

来源:https://docs.docker.com/engine/install/linux-postinstall/