需搭建内网私有镜像仓库并配置客户端信任与访问:部署Registry/Harbor于私有网段,开放端口并确保连通;HTTP源需配置insecure-registries,HTTPS源须分发CA证书至客户端certs.d目录。

要让 Docker 从私有网段内的镜像源拉取镜像(即配置“私有网段的镜像同步镜像源”),核心是搭建一个运行在内网的、可被其他节点访问的私有镜像仓库,并让客户端 Docker 守护进程信任并优先使用它。这不是简单改个镜像地址,而是涉及仓库部署、TLS/认证配置、网络可达性与客户端定向拉取四个关键环节。
确认私有镜像仓库已部署并可访问
私有镜像源必须是一个实际运行的 Registry 服务(如 Docker Registry、Harbor 或 Nexus),部署在你指定的私有网段中(例如 192.168.10.50:5000 或 harbor.internal:443)。需确保:
- 该服务监听地址绑定到内网 IP(非仅 localhost),且防火墙放行对应端口(如 5000、443);
- 其他 Docker 主机能通过 ping 和 curl 测试连通性,例如:
curl -I http://192.168.10.50:5000/v2/(HTTP)或curl -k https://harbor.internal/v2/(HTTPS); - 若使用 HTTP(非 HTTPS),所有客户端必须显式启用 insecure registry 支持。
配置客户端 Docker 使用该私有源
Docker 默认只从官方 Hub 或配置的 registry-mirrors 拉取公共镜像,但私有网段源通常用于拉取团队内部镜像(如 192.168.10.50:5000/myapp:latest),而非替代 Hub 的镜像加速。因此分两种情况处理:
-
拉取私有镜像时显式指定地址:直接使用完整仓库地址,例如
docker pull 192.168.10.50:5000/nginx:alpine; -
将私有源设为默认镜像源(不推荐):Docker 不支持全局替换默认 registry(即把 docker.io 替换为内网地址),但可通过 daemon.json 的
insecure-registries允许 HTTP 访问,并配合镜像重命名或 tag 本地化来简化使用; - 配合镜像同步工具实现“上游镜像自动缓存”:例如用 Harbor 的“镜像复制”规则,或 registry-mirror + skopeo 定期同步 hub 镜像到私有仓库,再让客户端统一拉取私有地址。
配置 insecure-registries(针对 HTTP 私有源)
若私有仓库使用 HTTP(开发测试常见),必须在每台客户端的 /etc/docker/daemon.json 中添加:
"insecure-registries": ["192.168.10.50:5000", "192.168.10.0/24"]
}
保存后执行:sudo systemctl daemon-reload && sudo systemctl restart docker。注意:insecure-registries 只放开连接限制,不改变拉取逻辑——仍需在镜像名中显式写入 IP:PORT。
HTTPS 私有源需配置 TLS 证书信任
生产环境强烈建议用 HTTPS。此时需:
- 为私有域名(如 harbor.internal)签发或自签证书;
- 将 CA 证书拷贝到客户端
/etc/docker/certs.d/harbor.internal:443/ca.crt; - 重启 docker 服务;
- 后续即可用
docker pull harbor.internal/myapp安全拉取。


















