配置私有仓库需两步:1. 修改/etc/docker/daemon.json添加insecure-registries并重启docker以让daemon信任http/自签https仓库;2. 用docker login或手动编辑~/.docker/config.json配置client认证信息。
docker engine 安装后,配置私有仓库地址主要涉及两部分:让 docker daemon 信任私有仓库(尤其使用 http 或非标准 https),以及让 docker client 能登录并操作该仓库(如需认证)。两者缺一不可,但作用不同。
1. 配置 Docker Daemon 信任私有仓库(关键前置步骤)
Docker 默认只信任 HTTPS 且证书有效的仓库。若私有仓库用的是 http://192.168.1.100:5000 或自签名 HTTPS,必须显式声明为“不安全仓库”(insecure registry),否则 push/pull 会报错 unauthorized: authentication required 或 http: server gave HTTP response to HTTPS client。
操作路径(Linux/macOS):
sudo vim /etc/docker/daemon.json
添加或修改内容(示例:私有仓库地址为 192.168.1.100:5000):
{
"insecure-registries": ["192.168.1.100:5000"]
}
- 支持多个地址,用英文逗号分隔:
["192.168.1.100:5000", "10.0.2.15:8080"] - 若仓库启用了 HTTPS 且证书可信,可省略此项;但多数内网私仓用 HTTP,此项必配。
保存后重启 Docker 服务:
sudo systemctl restart docker # 确认生效 docker info | grep -A 5 "Insecure Registries"
2. 配置 Docker Client 登录私有仓库(如需身份验证)
如果私有仓库(如 Harbor、Nexus 或带 Basic Auth 的 registry)启用了认证,Client 需要凭据才能 push/pull。
生成 Base64 认证字符串(以用户名 admin、密码 Harbor12345 为例):
echo "admin:Harbor12345" | base64 # 输出类似:YWRtaW46SGFyYm9yMTIzNDU=
编辑 Client 配置文件:
vim ~/.docker/config.json
填入认证信息(注意:auths 下的 key 必须与仓库完整地址一致,含协议和端口):
{
"auths": {
"http://192.168.1.100:5000": {
"auth": "YWRtaW46SGFyYm9yMTIzNDU="
}
}
}
⚠️ 注意:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 若仓库是
http://...,auths中的 key 必须写http://...,不能写https://或省略协议; - 若是
https://harbor.example.com,key 就写"https://harbor.example.com"; - 不需要手动创建
.docker/config.json,执行docker login命令会自动创建并填充:docker login http://192.168.1.100:5000 -u admin -p Harbor12345
3. 验证配置是否生效
完成以上两步后,测试流程如下:
-
标记本地镜像(例如
nginx:alpine)为私有仓库路径:docker tag nginx:alpine 192.168.1.100:5000/my-nginx:latest
-
推送:
docker push 192.168.1.100:5000/my-nginx:latest
-
拉取(可在另一台已同样配置
insecure-registries的机器上测试):docker pull 192.168.1.100:5000/my-nginx:latest
成功返回 Pushed 或 Downloaded 即表示配置正确。
4. 补充说明:镜像加速器与私有仓库不冲突
daemon.json 中可同时存在:
-
registry-mirrors(用于加速公共镜像拉取,如https://docker.mirrors.ustc.edu.cn) -
insecure-registries(仅用于绕过 TLS 校验,不影响加速器)
二者互不干扰,可共存:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["192.168.1.100:5000"]
}
不复杂但容易忽略










