这个错误信息表明 Docker 客户端在尝试通过 HTTPS 协议连接到 Docker 仓库时,但是服务器却返回了一个 HTTP 响应。这通常意味着 Docker 仓库没有正确配置为使用 HTTPS,或者客户端没有正确配置以信任仓库的 SSL 证书。以下是几种可能的解决方案:
配置 Docker 以信任私有仓库:
/etc/docker/daemon.json 文件,并在其中添加你的仓库地址为一个不安全的仓库。{
"insecure-registries" : ["192.168.28.66:8222"]
}
sudo systemctl restart docker
为 Docker 仓库配置 HTTPS:
使用自签名证书:
调试和测试:
docker login 或 docker pull 这样的命令来验证配置是否正确。{
"registry-mirrors": ["https://ftn1ffkb.mirror.aliyuncs.com"],
"insecure-registries" : ["192.168.28.66:8222"]
}
你可以按照以下步骤来进行编辑:
使用文本编辑器打开 /etc/docker/daemon.json 文件,例如使用 nano 或 vim:
sudo nano /etc/docker/daemon.json
或者
sudo vim /etc/docker/daemon.json
在文件中添加 insecure-registries 字段,确保 JSON 格式正确(即确保有逗号分隔不同的字段)。修改后的文件内容应该类似于上面的示例。
保存并关闭文件。如果你使用的是 nano,可以通过按 Ctrl+O 然后回车来保存更改,之后按 Ctrl+X 退出。如果你使用的是 vim,可以按 Esc 键,然后输入 :wq 并按回车来保存并退出。
重启 Docker 服务以应用更改:
sudo systemctl restart docker
重启 Docker 服务后,你的 Docker 客户端就会信任位于 192.168.28.66:8222 的私有仓库,并允许通过 HTTP 而不是 HTTPS 与之通信。请注意,这种方法会让你的 Docker 仓库通信不再是加密的,可能会带来安全风险。请根据你的安全需求谨慎选择。

