Docker 环境准备 
Docker 文档 
- docker.docs: Docker 官方文档
 
Docker 安装 
Docker 有两种安装方式
- Docker Engine: 也叫 Docker CE, 适用于 Linux 系统,仅支持命令行操作
 - Docker Desktop: 适用于 Mac、Windows、Linux 系统,支持图形界面操作
 
Docker Engine 
Docker Engine 支持 Ubuntu、Debian、CentOS 等 Linux 发行版本。
例如在 Ubuntu 上使用 apt 安装 Docker Engine
# 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随后记得将当前用户加入 docker 用户组,以便不用 sudo 运行 Docker 命令
sudo usermod -aG docker $USER安装 Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker Desktop 
Docker Desktop 支持 Mac、Windows 和 Linux,其中Linux 不同发行版本安装方式不同,支持 Ubuntu、Debian 等。
Docker 配置 
配置文件 
编辑 /etc/docker/daemon.json 文件配置镜像源
重新加载 systemd 守护进程并重启 Docker(systemd 系统)。对于 Desktop 版本,重启 Docker Desktop 即可。
sudo systemctl daemon-reload
sudo systemctl restart docker镜像源配置 
需要自定义网络的情况下,可以编辑 /etc/docker/daemon.json 文件配置镜像源,添加如下内容
{
  // 其他配置保留,添加如下配置:
  "registry-mirrors": [
    "https://registry.docker-cn.com", // Docker 中国官方镜像
    "https://dockerproxy.com",
    // 一些高校的代理地址
    "https://docker.mirrors.tuna.tsinghua.edu.cn", // 清华大学
    "https://docker.nju.edu.cn",                   // 南京大学
    "https://docker.mirrors.sjtug.sjtu.edu.cn",    // 上海交通大学
    "https://docker.mirrors.ustc.edu.cn",          // 中国科技大学
    // 一些大企业的代理地址
    "https://mirror.ccs.tencentyun.com", // 腾讯
    "https://mirror.aliyuncs.com",       // 阿里云
    "https://mirror.baidubce.com",       // 百度
    "http://hub-mirror.c.163.com",       // 网易云
    // 其他代理地址
    "https://docker.m.daocloud.io",    // Daocloud
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc"
  ],
  // 可选
  "max-concurrent-downloads": 10
}一些重要的提示:
- 一定要在工作前配置好网络,避免“一杯茶,一包烟,一个镜像拉一天”
 - 使用 Docker Desktop 的可以在 
Settings->Docker Engine中配置 - 配置文件遵循严格的 json 规范:(1)文件不可以有注释(2)列表最后一个项目不可以用逗号结束
 - 代理地址选择一个即可,不需要全部添加,根据自己的网络情况进行选择
 - 修改地址后可以随便拉去一个镜像测试速度: 
docker pull ubuntu:latest && docker images && docker rmi ubuntu:latest; docker images - 测试的时候可以一组一组地尝试,因为高校和大企业要挂可能一起挂
 
insecure-registries 
在某次 go install 的时候,遇到了类似如下的错误:tls: failed to verify certificate: x509: certificate signed by unknown authority
解决方法是在 Docker Desktop 中添加 insecure-registries,如下图所示:
{
  // Docker 如果需要从非 SSL 源管理镜像,这里加上。
  "insecure-registries": [
    "registry.docker-cn.com",
    "docker.m.daocloud.io",
    "goproxy.cn"
  ]
}Docker Hub 注册 
在 Docker Hub 注册一个账号,可以在 Docker Hub 上发布自己的镜像。
docker push <username>/<repo>:<tagname>Docker GPU 
Nvidia GPU 的支持,目前只支持 Linux 系统,需要安装 NVIDIA Container Toolkit.
配置 apt 存储库
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
sudo apt-get update安装 NVIDIA Container Toolkit
sudo apt-get install -y nvidia-container-toolkit配置 Docker 以使用 Nvidia 驱动程序
sudo nvidia-ctk runtime configure --runtime=docker执行上述命令后,会在配置文件 /etc/docker/daemon.json 中自动添加如下配置
{
  "runtimes": {
      "nvidia": {
          "args": [],
          "path": "nvidia-container-runtime"
      }
  }
}重启 Docker 服务以使配置生效
sudo systemctl restart docker随后在启动容器时,使用 --gpus 参数指定使用的 GPU 设备
docker run --gpus all ...如果使用 docker-compose 启动容器,需要在 docker-compose.yml 文件中添加如下配置
services:
  myservice:
    image: myimage
    runtime: nvidia  #
    ...