Docker守护程序API升级至v1.4

4

我无法使用以下命令在容器中使用NVIDIA GPU:

docker run --gpus all nvidia/cuda:10.0-base nvidia-smi

"--gpus" 需要 API 版本 1.40,但 Docker 守护程序的 API 版本为 1.39

它需要 API 版本 1.4 :

Client: Docker Engine - Community
 Version:           19.03.12
 API version:       1.39
 Go version:        go1.13.10
 Git commit:        48a66213fe
 Built:             Mon Jun 22 15:45:36 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.9
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.11.13
  Git commit:       039a7df
  Built:            Wed Sep  4 16:19:38 2019
  OS/Arch:          linux/amd64
  Experimental:     false ```

我找不到升级守护程序API的方法。

请帮忙。


你需要升级系统的Docker守护进程。通常我期望docker version返回的两个版本号是相同的;你使用了什么设置导致它们不同?(你是否使用Docker Toolbox,或手动设置了$DOCKER_HOST环境变量?) - David Maze
@david maze:我按照 Docker 的基本安装说明进行了安装。是的,我已经手动设置了它。我应该删除所有内容并重新安装吗? - Nishant
1
你根本不需要设置 $DOCKER_HOST。你设置了什么?为什么要设置它?你的主机操作系统是什么? - David Maze
2个回答

3

我遇到了完全相同的问题。对我而言,更新 docker-ce 可以解决这个问题。

$ apt search docker-ce                                                                                                    
 Sorting... Done
 Full Text Search... Done
 docker-ce/xenial 5:19.03.12~3-0~ubuntu-xenial amd64 [upgradable from: 5:18.09.6~3-0~ubuntu-xenial] Docker: the open-source application container engine

 docker-ce-cli/xenial,now 5:19.03.12~3-0~ubuntu-xenial amd64 [installed,automatic] Docker CLI: the open-source application container engine

$ apt install docker-ce
$ docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

正如您所看到的,我安装了Docker客户端docker-ce-cli(版本为v19.03),但安装的Docker服务器版本是v18.09


0

如果没有更新docker的可能性(如果您在此机器上没有根权限),并且假设已安装了nvidia-docker,请尝试以下签名:

nvidia-docker run --rm \
  ...
  -e NVIDIA_VISIBLE_DEVICES=0,1 \
  ...

那样做,你将调用 nvidia-docker 运行时并限制可见的 GPU 是 0、1(你选择哪些 GPU 可见)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接