ubuntu安装docker及nvidia-container-toolkit(nvidia-docker和nvidia-docker2)

本文详细介绍了如何在Ubuntu系统中卸载旧版Docker,添加Docker的APT源并安装最新版Docker,然后通过安装nvidia-container-toolkit来支持NVIDIAGPU在Docker容器中的使用。此外,还提供了将Docker添加到非root用户组以及测试GPU功能的步骤。

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

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版本,并将${根据网站查询得到}改成对应的版本
成功参考:
测试:sudo docker run --rm --gpus all nvidia/cuda:11.7.1-base-ubuntu20.04 nvidia-smi

3 参考博客

Docker-从入门到实践
ubuntu下快速配置TAO toolkit进行模型训练学习

<think>好的,用户需要的是在Linux环境下离线安装DockerNVIDIA Container Toolkit的指南。首先,我得确认离线安装的具体步骤,因为通常这些工具需要在线下载依赖包,但用户可能没有网络连接。 首先处理Docker的离线安装。通常,Docker安装需要添加仓库,然后使用apt或yum安装,但离线情况下需要先在有网络的机器上下载所有依赖包。用户可能需要下载.deb或.rpm文件,然后传输到目标机器安装。我需要确定Docker的离线包如何获取,比如从官方下载地址或者镜像站点。另外,还要考虑系统架构版本,比如Ubuntu、CentOS的不同处理方式。 然后是NVIDIA Container Toolkit的离线安装。根据引用中的信息,NVIDIA Container Toolkit安装通常需要添加仓库apt安装,但离线情况下同样需要下载所有相关的包。可能需要先下载nvidia-container-toolkit的.deb文件及其依赖,比如libnvidia-container等。此外,还需要配置daemon.json,这部分在线安装类似,但需要确保所有步骤都能离线完成。 接下来,用户可能需要设置Docker的存储库,即使离线,也需要手动创建repo文件。不过,如果完全离线,可能直接安装下载好的包即可,不需要配置仓库源。需要分步骤说明如何下载、传输安装这些包。 还要注意安装后的配置步骤,比如将用户加入docker组,验证安装是否成功,以及测试NVIDIA Container Toolkit是否正常工作。这部分可能需要运行nvidia-smi命令,但离线环境下需要确保CUDA基础镜像已经提前下载并导入到Docker中。或者用户可能需要自己构建一个离线镜像。 另外,用户可能遇到的问题包括依赖项缺失、版本不兼容、服务启动失败等,需要给出常见问题的解决方法,比如检查依赖、确认包版本、手动启动服务等。 最后,生成相关问题时要围绕离线安装可能遇到的扩展问题,比如如何更新、处理依赖、创建本地仓库等,帮助用户进一步解决问题。</think>### Linux环境下DockerNVIDIA Container Toolkit离线安装指南 #### 一、Docker离线安装步骤 1. **下载离线包** 在有网络的机器上执行以下操作: ```bash # 下载docker-ce及相关依赖 apt-get download docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` 生成的`.deb`文件将保存在当前目录,需复制到目标机器。 *注意:需根据系统架构(amd64/arm64)选择对应版本* 2. **安装Docker** 在目标机器执行: ```bash sudo dpkg -i *.deb sudo systemctl enable docker ``` 3. **验证安装** ```bash sudo docker run hello-world ``` #### 二、NVIDIA Container Toolkit离线安装 1. **下载离线组件** 从[NVIDIA Container Toolkit镜像仓库](https://gitcode.com/gh_mirrors/nv/nvidia-container-toolkit)[^2]获取以下组件: - libnvidia-container - nvidia-container-toolkit - nvidia-container-runtime 2. **手动安装(以Ubuntu为例)** ```bash # 按顺序安装依赖 sudo dpkg -i libnvidia-container*.deb sudo dpkg -i nvidia-container-toolkit*.deb ``` 3. **配置Docker** ```bash sudo tee /etc/docker/daemon.json <<EOF { "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } EOF sudo systemctl restart docker ``` #### 三、离线验证GPU支持 ```bash # 需提前下载CUDA基础镜像并导入 sudo docker load -i cuda11.0-base.tar sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi ``` #### 常见问题处理 - **依赖缺失错误**:使用`apt-get download`补全缺少的依赖包 - **版本冲突**:通过`dpkg -l | grep nvidia`检查已安装版本 - **服务启动失败**:执行`journalctl -u docker.service`查看日志
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值