ARM 服务器上的 Docker 部署 -m 指令 异常分析及排查
问题描述
在 ARM 服务器上部署 Docker 时,使用 -m 指令指定内存大小时,会出现如下异常:
- 容器启动失败并出现如下敏感信息内容如下
applying cgroup configuration for process caused \"No such device or address
排查过程
- 查看docker 的daemon 配置文件
cat /etc/docker/daemon.json
- 确认是否存在如下配置项
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
- 确认是否存在 nvidia-container-runtime 组件
ls /usr/bin/nvidia-container-runtime
- 确认 nvidia-container-runtime 组件是否正常运行
nvidia-container-runtime
- 确认 nvidia-container-runtime 组件是否正常运行
docker run --rm --runtime=nvidia nvidia/cuda nvidia-smi
- 确认 Cgroup Driver 为systemd
docker info | grep -E "Cgroup Driver|Runtimes"
- 修改 /etc/docker/daemon.json 文件,添加如下配置项
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
- 重启 docker 服务
systemctl restart docker