docker安装
安装nvidia-docker2也要先安装docker
#删除系统原有docker 如果提示找不到就不用理会
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update #更新apt-get源
#安装docker的依赖
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
#信任 Docker 的 GPG 公钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 添加源 可以替换为清华源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # 清华源
sudo apt-get update
sudo apt-get install docker-ce
apt-cache madison docker-ce ###加载docker
sudo docker run hello-world ###验证docker是否安装成功。
查看docker版本: docker version
nvidia-docker2安装
For first-time users of Docker 19.03 and GPUs, continue
# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
# 验证是否成功,cuda要选当前使用的版本
docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
Error
-
fork/exec /usr/bin/nvidia-container-runtime: no such file or directory: unknown
原因:没有安装nvidia-container-runtime包 -
docker: Error response from daemon: Unknown runtime specified nvidia
原因:nvidia runtime没有注册,用--runtime选项会报错
办法:
# 写override.conf
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 写daemon.json
sudo tee /etc/docker/daemon.json <<EOF
{
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
sudo pkill -SIGHUP dockerd