【发布时间】:2019-12-29 11:44:36
【问题描述】:
我想在退出并重新启动后重新启动一个 docker 容器,并使用最初创建它时使用的相同运行时。
这是我到目前为止所做的。
创建容器:
sudo docker run --runtime=nvidia [...]
退出容器并重启后重启Docker:
service docker restart
重启之前创建的容器:
sudo docker start my_container
重新打开容器。
docker exec -it my_container [...]
随后在容器中启动的程序未按预期使用 Nvidia GPU。而是使用系统 CPU。
任何帮助将不胜感激。
【问题讨论】:
-
同一个运行时是什么意思?你的意思是你需要你的 docker 容器在系统重启/启动时运行,甚至在 docker 服务重启时运行?
-
我希望在重新启动的容器中运行命令时使用 nvidia GPU。
-
您的意思是 docker run 的
--runtime=nvidia选项应该始终有效并指向 nvidia 运行时? -
并非总是如此,仅适用于使用
--runtime=nvidia选项创建的特定容器。我可能缺少一个关于 Docker 的概念,但是当我第一次创建容器(使用run命令)时,我在其中启动的程序使用 nvidia GPU 执行,当我退出容器然后重新打开时情况并非如此使用exec命令。 -
碰巧只有在系统重启时才会出现问题。如果我只是简单地
stop容器然后start再次使用它,则仍然使用 nvidia GPU。我猜运行时在重新启动时未注册。
标签: linux docker cuda nvidia nvidia-docker