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/
我是 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/