当我尝试使用同一服务器(主节点)上的私有(private) Docker 注册表中的图像在 Kubernetes 中部署应用程序时,我收到以下错误:
Failed to pull image "0.0.0.0:5000/continuous-delivery-tutorial:5ec98331a69ec5e6f818583d4506d361ff4de89b-2020-02-12-14-37-03": rpc error: code = Unknown desc = Error response from daemon: Get https://0.0.0.0:5000/v2/: http: server gave HTTP response to HTTPS client
当我打印
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
中允许的不安全注册表列表中, 例如:
{
"insecure-registries" : ["your-computer-hostname:5000"]
}
(这个文件应该包含 1 个 json 对象,所以如果它不为空,则将 insecure-registries
属性添加到现有对象而不是创建新对象。还要记住之后重新启动 docker 守护程序)此外,您不应该使用
0.0.0.0
因为它不是一个真实的地址。指定图像时使用您的主机名,例如 your-computer-hostname:5000/continuous-delivery-tutorial:5ec98331a69ec5e6f818583d4506d361ff4de89b-2020-02-12-14-37-03
关于docker - 从 Docker 本地不安全注册表 : http: server gave HTTP response to HTTPS client 提取图像失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60190074/