这个错误信息表明 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 仓库通信不再是加密的,可能会带来安全风险。请根据你的安全需求谨慎选择。