内容

在Ubuntu 22.04 上安装 docker,修改docker镜像存放位置至数据盘,配置使用国内镜像源,以及配置英伟达驱动使用方法。

  1. 安装必要工具

sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release
  1. 添加阿里源 Docker 镜像仓库证书证书

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/aliyun-docker.gpg
  1. 添加仓库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/aliyun-docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装docker

sudo apt update
sudo apt install -y docker-ce


# Ubuntu系统安装完以后自动启动,WSL可能需要额外一行命令:
sudo service docker start
  1. 验证docker启动

sudo docker info
  1. 当前用户加入docker用户组

#如果没有docker group
sudo groupadd docker

sudo usermod -aG docker $USER
newgrp docker
  1. 运维相关

#查看所有的container示例
docker ps -a 

#查看所有的镜像
docker images

#查看docker运行日志,在启动失败时可用于排查问题
dockerd 

#用于修改docker镜像的名称,请自行修改<image-name-1>,<tag-1>,<image-name-2>, <tag-2>的内容
docker tag <image-name-1>:<tag-1> <image-name-2>:<tag-2> 

#移除docker镜像名 / 移除docker镜像
docker rmi A1:tag1 

#查看一个容器的日志,使用ctrl+C 退出
docker logs -f <container-1>

#查看一个容器的信息
docker inspect <container-1>

#删除一个容器
docker rm -f <container-1>
  1. 镜像储存位置修改

#docker 镜像 迁移存储路径
sudo rsync -aP /var/lib/docker/ /mnt/data0/docker

#修改docker配置
打开 /etc/docker/daemon.json 

#加入新位置,,维持daemon.json的语法
{
["data-root":"/your/new/path"]
}


#重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

# 确认docker文件位置
docker info | grep "Docker Root Dir"
  1. 换国内源

打开 /etc/docker/daemon.json

加入源地址,维持daemon.json的语法
  {
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.hlmirror.com",
    "your-other-source.com"
  ]
  }

# 加载并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker


#确认换源成功
docker info
--------------------------------------------------

#或者可以一次性使用源:
docker pull docker.1ms.run/<image>:<tag>
  1. 打包至离线环境

#打包镜像 
docker save -o my-docker-image.tar my-docker-image:tag

#上传至目标服务器并加载
docker load -i my-docker-image.tar
  1. 配置Nvidia-Container-Toolkit

# 确认 Nvidia 驱动已经安装:
nvidia-smi

在线下载方法

# 导入 GPG 密钥
curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

# 添加中科大镜像源列表
curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# 直接安装
sudo apt update
sudo apt install -y nvidia-container-toolkit

离线下载方法

# 去在线环境下载以下包,并上传至目标服务器依次安装

1. nvidia-container-toolkit-base.deb 
2. libnvidia-container1.deb 
3. libnvidia-container-tools.deb 
4. nvidia-container-toolkit.deb

配置docker

# 配置Docker守护进程
sudo nvidia-ctk runtime configure --runtime=docker

# 重启docker
sudo systemctl restart docker

# 切换gpu到持久模式使得nvidia-smi没有延迟
sudo nvidia-smi -pm 1