docker - 从 Docker 本地不安全注册表 : http: server gave HTTP response to HTTPS client 提取图像失败

标签 docker kubernetes https docker-registry

当我尝试使用同一服务器(主节点)上的私有(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我可以看到我的注册表是不安全的注册表:

enter image description here

我通过以下命令运行我的注册表:
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/

相关文章:

wordpress - 反向代理到 WordPress 容器

docker - 当不支持沙箱时,有没有办法让 bazel 使用沙箱目录?

docker - 如何在 gitlab-ci.yml 中使用 drush 作为服务?

kubernetes - 为数据科学/机器学习任务设置多用户作业调度程序

apache - 如何将 HTTPS 重定向到 HTTP?

带有 docker 的 mysql_config_editor

azure - AWS ECR PULL 没有基本身份验证凭据

kubernetes - 从 GitLab CI 作业向 Kubernetes Pod 发送信号

java - 如何使用 Spring Boot 使用 HTTPS GET 服务

amazon-web-services - AWS 证书 "https"问题