如果没有 sudo 命令,Docker 标志“--gpu”将无法工作

Jon*_*ony 2 linux ubuntu gpu docker

我是ubuntu用户。我使用以下泊坞窗图像,tensorflow/tensorflow:nightly-gpu

如果我尝试运行这个命令

$ docker run -it --rm --gpus all tensorflow/tensorflow:nightly-gpu bash
Run Code Online (Sandbox Code Playgroud)

存在权限被拒绝错误。

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.
Run Code Online (Sandbox Code Playgroud)

当然,如果我正在使用 ,我可以运行此命令sudo,但我想在gpu不使用 的情况下使用sudo

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

Art*_*ito 6

因为您的问题似乎仅在运行“--gpu”时出现。

添加/更新 /etc/nvidia-container-runtime/config.toml 的这两部分

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

[nvidia-container-runtime]
debug = "/tmp/nvidia-container-runtime.log"
Run Code Online (Sandbox Code Playgroud)

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

如果你根本无法在没有 sudo 的情况下使用 docker

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

$ sudo groupadd docker

$ sudo usermod -aG docker $USER

$ newgrp docker 
Run Code Online (Sandbox Code Playgroud)

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