Docker 容器创建与使用问题汇总

发布于:2024-04-26 ⋅ 阅读:(136) ⋅ 点赞:(0)

目录

常用命令

Docker 18.09

Error response from daemon: Container is not running

unknown flag: --gpus

CUDA error: "cudaSetDevice(device_)"

Docker 19.03

容器创建时指定GPU,执行 nvidia-smi 命令只显示指定的显卡

容器创建时指定GPU,执行 nvidia-smi 命令显示所有的显卡


系统信息:

CentOS 7

NVIDIA-SMI: 418.87.00

Driver Version: 418.87.00

CUDA Version: 10.1


常用命令

# 查看镜像
docker image ls

# 查看容器
docker ps
docker ps -a

# 启动容器
docker exec -it 容器名/容器ID /bin/bash
docker exec -it 容器名/容器ID bash

# 停止容器
docker stop 容器名/容器ID

# 删除容器
docker rm 容器名/容器ID

# 删除镜像
docker rmi 镜像名/镜像ID

Docker 18.09

Error response from daemon: Container is not running

容器创建成功,但启动未生效,登录时报错:

docker run --name test -p 8089:8089 -v /home:/home -d --privileged 2962dc1ddf9a
docker start 4938aa3e4e19
docker exec -it 4938aa3e4e19 /bin/bash
Error response from daemon: Container 4938aa3e4e1939bee79bd31b8a09de is not running

可能是创建容器时未添加终端登录 -it 参数,可以修改命令如下:

docker rm test
docker run --name test -p 8089:8089 -v /home:/home -itd --privileged 2962dc1ddf9a
docker exec -it test /bin/bash

详见:docker run命令参数笔记_--add-host list-CSDN博客

unknown flag: --gpus

容器创建时无法指定GPU,提示未知参数:

docker run --name test -p 8089:8089 -v /home:/home -itd --privileged --gpus all 2962dc1ddf9a
unknown flag: --gpus
See 'docker run --help'.

Docker 18.09 不支持GPU指定,如果需要指定GPU,至少需要升级到 Docker 19.03 版本

CUDA error: "cudaSetDevice(device_)"

在容器中执行 nvidia-smi 命令没有输出,执行需要设置GPU的程序报错:

CUDA error at src/CwTensorRTFeature.cpp:155 code=35(cudaErrorInsufficientDriver) "cudaSetDevice(device_)"

Docker 18.09 不支持GPU指定,如果需要指定GPU,至少需要升级到 Docker 19.03 版本


Docker 19.03

容器创建时指定GPU,执行 nvidia-smi 命令只显示指定的显卡

docker run -itd --privileged=true --name test1 -v /home:/home --gpus='"device=1"'  2962dc1ddf9a bash

执行需要设置GPU的程序时,如果设置了超出显示的显卡数的GPU ID,也会报错:

CUDA error at src/CwTensorRTFeature.cpp:155 code=35(cudaErrorInsufficientDriver) "cudaSetDevice(device_)"

容器创建时指定GPU,执行 nvidia-smi 命令显示所有的显卡

docker run -itd --privileged=true --name test1 -v /home:/home --gpus \"device=1\"  2962dc1ddf9a bash

参考:https://www.cnblogs.com/linhaifeng/p/16108285.html