ubuntu安装docker及nvidia-container-toolkit(nvidia-docker和nvidia-docker2)
1 安装Docker
1.1 卸载旧版本
旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:
sudo apt-get remove docker \
docker-engine \
docker.io
1.2 使用 APT 安装
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 官方源
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
然后,我们需要向 sources.list 中添加 Docker 软件源:
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 官方源
# echo \
# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test。
1.3 安装Docker
更新 apt 软件包缓存,并安装 docker-ce:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
1.4 将docker添加到非root用户
以非root用户身份管理Docker
Docker守护程序绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字由用户拥有root,其他用户只能使用sudo来访问它。Docker守护程序始终以root用户身份运行。
如果你不想在前言docker与命令sudo,创建一个名为UNIX组docker和用户添加到它。Docker守护程序启动时,它会创建一个可由该docker组成员访问的Unix套接字。
创建用户组
sudo groupadd docker
将您的用户添加到该docker组。
sudo usermod -aG docker ${用户名}
如果没有用则
sudo gpasswd -a ${用户名} docker
然后重启docker
systemctl restart docker
最后给docker.sock加权
sudo chmod a+rw /var/run/docker.sock
2 安装nvidia-container-toolkit
nvidia-docker和nvidia-docker2已经被英伟达迭代了,使用的话会出现别的问题,可以认为nvidia-container-toolkit是nvidia-docker和nvidia-docker2的替代品,它可以让您在Docker容器中使用NVIDIA GPU。参考:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html
nvidia-container-toolkit是一组软件包,它们包括一个容器运行时库和一些工具,可以自动配置容器来利用NVIDIA GPU。它支持不同的容器引擎,如Docker、containerd、LXC、Podman等。https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.htmlhttps://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
要使用nvidia-container-toolkit,您需要满足以下条件:
这里按照官方推荐使用nvidia-container-toolkit会更好,此处给出安装成功的方法:
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
测试一下:
sudo docker run --rm --gpus all nvidia/cuda:${根据网站查询得到} nvidia-smi
# 例如
sudo docker run --rm --gpus all nvidia/cuda:11.7.1-base-ubuntu20.04 nvidia-smi
在supported-tags中找到与自己系统对应的cuda版本,并将${根据网站查询得到}改成对应的版本
成功参考: