Ubuntu22.04 docker 配置以及docker中的深度学习环境配置

本文分享了在Ubuntu22.04上使用Docker和避免docker-desktopGPU问题的心得,推荐直接安装docker-engine,并介绍了如何配置NVIDIAContainerToolkit以利用GPU资源,以及如何简化权限设置以提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人在ubuntu22.04上的docker和docker-desktop上踩了较多坑,现在在这里做些总结。

docker-engine和docker-desktop

在windows平台上可以不用对两者做出较大的区别,因为下载docker-desktop时会自动下载docker-engine。
而在ubuntu上有较大的区别,最重要的是本人使用过程中docker-desktop会无法调用gpu这对深度学习而言是致命的(详细见https://github.com/docker/desktop-linux/issues/79)。并且在使用docker-desktop过程中,使用命令docker images和命令sudo docker images得到的结果是不同的,个人认为是在启动docker-desktop后直接使用docker命令和使用sudo docker命令的用户组不同。

所以对ubuntu平台下并且对gpu有使用需求的,不建议下载docker-desktop,建议直接下载docker-engine

下载docker-engine

官方下载文档:https://docs.docker.com/engine/install/ubuntu/
择取比较重要的部分:

  1. 卸载可能会与docker-engine冲突的包和非官方的docker软件包,以下命令卸载这些包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
  1. 设置aptdocker的官方存储库
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  1. apt下载官方软件包(最新的)
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 检测docker是否下载成功
sudo docker run hello-world

安装 nvidia-container-runtime

为了允许docker访问gpu资源,我们需要下载nvidia维护的一个容器运行时,nvidia官方的下载指导:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

择取比较重要的部分:

  1. 配置生产存储库:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  1. 从存储库更新包列表:
sudo apt-get update
  1. 安装 NVIDIA Container Toolkit 软件包:
sudo apt-get install -y nvidia-container-toolkit
  1. 验证gpu是否可用
docker run -it --rm --gpus all ubuntu nvidia-smi

正常情况下会输出本机的nvidia-smi信息

将本地用户加入docker用户组

到现在为止,想要使用docker,都必须加上sudo,为了简化,我们需要将使用的用户加入docker用户组。
依次执行以下命令:

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker

但是有的人还是无法成功,这种情况可能是/var/run/docker.sock文件权限不够导致的,给此文件加上读写权限:

sudo chmod +rw /var/run/docker.sock

再次执行命令:

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker

即可成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值