源本科技 | 码上会

Docker 镜像加速

2025/12/24
251
0

国内镜像状态参考https://status.anye.xyz

建议优先选择 “正常”且响应快 的镜像源,避免使用已离线或限速站点。


安装 Docker

虽然 docker.io 是 Ubuntu 官方仓库中的 Docker 包,但其版本通常较旧。推荐使用 Docker 官方 APT 仓库安装最新稳定版

官方方式

# 1. 安装必要依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

# 2. 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 3. 添加 Docker APT 源(自动适配系统代号)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

此方式可获得最新版 Docker,并支持 docker compose(v2 插件形式)。

快速方式

若对版本无要求,可直接安装系统仓库中的 docker.io

sudo apt install -y docker.io

注意:此版本可能缺少新特性,且 docker-compose 需单独安装(见下文)。


安装 Docker Compose

方式 1:使用官方插件

已在上一步通过 docker-compose-plugin 安装,命令为:

docker compose version

注意是 docker compose(无横杠),而非旧版 docker-compose

方式 2:安装传统独立版

sudo apt install -y docker-compose

Ubuntu 仓库中的 docker-compose 版本通常较老(如 v1.25),不支持 Compose V2 语法。


配置镜像加速器

Docker 默认从 docker.io 拉取镜像,国内访问极慢。需配置 registry mirrors 加速。

创建或编辑配置文件

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

推荐配置

{
  "exec-opts": [
    "native.cgroupdriver=systemd"
  ],
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.1panel.live",
    "https://docker.m.ixdev.cn",
    "https://hub.rat.dev",
    "https://image.cloudlayer.icu",
    "https://docker-registry.nmqu.com",
    "https://hub.amingg.com",
    "https://docker.amingg.com",
    "https://docker.hlmirror.com",
    "https://hub1.nat.tf",
    "https://hub3.nat.tf",
    "https://docker.m.daocloud.io",
    "https://docker.367231.xyz",
    "https://hub.1panel.dev",
    "https://dockerproxy.cool",
    "https://docker.apiba.cn",
    "https://proxy.vvvv.ee"
  ],
  "insecure-registries": [
    "http://easzlab.io.local:5000"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "data-root": "/var/lib/docker"
}

镜像源选择建议(根据 status.anye.xyz 实时状态):

  • DaoCloud (docker.m.daocloud.io):稳定、企业级,支持多 registry;

  • dockerproxy.cool / 1Panel:响应快,适合个人 / 小团队;

  • 避免使用标为“离线”或“响应缓慢”的源(如部分 nat.tf 节点不稳定)。

重载并重启

sudo systemctl daemon-reload
sudo systemctl restart docker

验证安装与配置

检查版本与状态

docker --version
sudo systemctl status docker

验证镜像加速

docker info | grep -A 10 "Registry Mirrors"

应看到你配置的镜像地址列表。

测试拉取镜像

docker pull nginx:alpine

若速度明显快于未配置前(几秒 vs 几分钟),说明加速成功。


补充说明

配置项

说明

native.cgroupdriver=systemd

与 Kubernetes 兼容必需,避免 cgroup 驱动不一致错误

insecure-registries

允许访问 HTTP 私有仓库(如 KubeSphere 内置 Harbor)

log-opts

限制容器日志大小,防止磁盘爆满

data-root

可改为大容量磁盘路径(如 /data/docker