Docker镜像加速

Docker 镜像加速

默认从 Docker Hub 拉镜像,国内网络基本拉不动,必须配镜像加速器。

一、写配置

bash 复制代码
mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
    "https://hub-mirror.c.163.com",
    "https://my1tmn29.mirror.aliyuncs.com"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

每个字段什么意思:

字段 作用
registry-mirrors 镜像加速站点(按顺序尝试,第一个可用就生效)
exec-opts 设置 docker 的 cgroup 驱动 。CentOS 7 保持 cgroupfs 也可以;如果宿主机 systemd 版本较新,用 systemd 更统一(K8s 1.24+ 要求运行时和 kubelet 的 cgroup driver 一致)
log-driver 日志驱动,默认 json-file
log-opts.max-size 单个日志文件最大 100m(不限制的话容器日志会把磁盘写满)
log-opts.max-file 最多保留 3 个文件(轮转)

★ 为什么必须配 log-opts :容器日志默认写进 json-file 且不限制大小,一个疯狂打日志的容器能把磁盘写满。这是生产必配项,也是面试常问的"容器日志怎么控制"。

二、生效与检验

bash 复制代码
systemctl daemon-reload        # daemon.json 改了要先 reload
systemctl restart docker       # 再重启 docker
systemctl status docker        # 确认 active (running)

docker info | grep -A5 "Registry Mirrors"

预期输出:

text 复制代码
 Registry Mirrors:
  https://docker.1ms.run/
  https://docker.xuanyuan.me/
  https://hub-mirror.c.163.com/
  https://my1tmn29.mirror.aliyuncs.com/

docker info 里能看到这几行,就说明加速器生效了(这是"加速器是否生效"的唯一权威判断方式,不是看文件)。

三、加速地址从哪找(三类来源)

来源 地址
阿里云专属加速器(最稳,推荐) 阿里云控制台 → 容器镜像服务 ACR → 镜像工具 → 镜像加速器,形如 https://<你的ID>.mirror.aliyuncs.com
商业镜像同步站 轩辕镜像 https://xuanyuan.cloud/、毫秒镜像 https://1ms.run/
镜像站(可查镜像是否存在) https://docker.aityp.com/,例:https://docker.aityp.com/image/docker.io/tomcat:9.0.107-jdk21

坑(重要):

  1. 公共加速地址失效非常快(有的已停服),强烈建议换成自己阿里云控制台申请的专属地址;
  2. 不要填这些 :https://hub.docker.com(官方仓库,不是加速器)、https://cr.console.aliyun.com(控制台地址,不是加速器);
  3. 失效的地址排在前面会浪费超时时间,拖慢每一次拉取,所以列表要精简;
  4. 改完 daemon.json 一定要 systemctl daemon-reload + systemctl restart docker,只 reload 不 restart 不生效;
  5. JSON 写错(多逗号、少引号)会导致 docker 起不来 ,改完先校验:python -m json.tool /etc/docker/daemon.json。
相关推荐
帷幕落秋1 小时前
Docker原理-理论基础
运维·docker
有毒的教程1 小时前
Linux底层存储路由配
linux·运维·网络
TTATTC1 小时前
告别开源 Agent 的本地运维折磨:拆解阿里 QoderWork 的沙盒隔离架构与三级渐进式 Skills 编排实践
docker·开源
帷幕落秋1 小时前
Docker常见命令总结
docker
程序员老赵1 小时前
Docker 部署 Redmine:轻松搭建私有化项目管理平台
docker·容器·开源
Baron X2 小时前
Eclipse Temurin 21 (JRE) Alpine 镜像获取、离线导入与推送操作
java·docker·eclipse·temurin
云智慧AIOps社区2 小时前
MSP 的增长瓶颈不在客户,在交付模式:人效与规模如何兼得?
运维·人工智能·自动化运维
HAHAXX83 小时前
淘宝RPA定时拉取交易数据实战:从人工录单报错到自动化对账全流程复盘
运维·自动化·rpa
深蓝电商API3 小时前
Docker+K8s部署爬虫:从单机到集群的完整路线
爬虫·docker·k8s