无法从Docker本地不安全注册表中提取映像:http:服务器向HTTPS客户端提供了http响应

无法从Docker本地不安全注册表中提取映像:http:服务器向HTTPS客户端提供了http响应,docker,kubernetes,https,docker-registry,Docker,Kubernetes,Https,Docker Registry,当我尝试使用同一服务器(主节点)上我的私有Docker注册表中的映像在Kubernetes中部署应用程序时,我收到以下错误: 无法提取图像 “0.0.0.0:5000/连续交付教程:5ec98331a69ec5e6f818583d4506d361ff4de89b-2020-02-12-14-37-03”: rpc错误:code=Unknown desc=来自守护进程的错误响应:Get :http:服务器对HTTPS给出了http响应 客户 当我打印docker system info时,我可以看

当我尝试使用同一服务器(主节点)上我的私有Docker注册表中的映像在Kubernetes中部署应用程序时,我收到以下错误:

无法提取图像 “0.0.0.0:5000/连续交付教程:5ec98331a69ec5e6f818583d4506d361ff4de89b-2020-02-12-14-37-03”: rpc错误:code=Unknown desc=来自守护进程的错误响应:Get :http:服务器对HTTPS给出了http响应 客户

当我打印
docker system info
时,我可以看到我的注册表是不安全的注册表:

我通过以下命令运行注册表:

docker run -d -p 5000:5000 --restart=always --name registry -v $PWD/docker_reg_certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2

感谢您的建议

您需要将主机名添加到
/etc/docker/daemon.json中允许的不安全注册表列表中,例如:

{
“不安全的注册表”:[“您的计算机主机名:5000”]
}
(此文件应包含1个json对象,因此如果它不是空的,则将
不安全注册表
属性添加到现有对象中,而不是创建一个新的对象。还记得稍后重新启动docker守护程序)


此外,您不应该使用
0.0.0.0
,因为它不是真实地址。在指定映像时使用您的主机名,例如
您的计算机主机名:5000/连续交付教程:5ec98331a69ec5e6f818583d4506d361ff4de89b-2020-02-12-14-37-03

谢谢,它现在可以工作了。然而,我发现它不起作用的原因很明显:它在不同的节点上调用注册表。对于单节点集群,它在更改daemon.json文件后工作。不要忘记重新启动docker守护程序:“sudo service docker restart”非常感谢;虽然最后我意识到我不应该创建另一个json块,而是应该添加到先前存在的json块中。因此,编辑@westerngunjson的建议不允许注释。我已经还原了代码,并在下面添加了一个注释,以避免混淆ppl;-)@乌里洛亚,我在答案上加了一条注释。谢谢!