首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用https访问Docker专用注册表

使用https访问Docker专用注册表
EN

Stack Overflow用户
提问于 2019-01-29 11:35:09
回答 3查看 1.9K关注 0票数 3

我有一个私有注册表,它是通过https协议访问的。但是Kubernetes + Docker总是尝试使用http协议http://myserver.com:8080而不是https://myserver.com:8080

如何强制使用https协议?

声明Pod的yaml文件片段:

代码语言:javascript
复制
  containers:
    - name: apl
      image: myserver.com:8080/myimage

我的环境细节:

  • CentOS 7.3
  • 码头工人18.06
  • Kubernetes (Minikube) 1.13.1

Kubernetes日志中的错误消息:

代码语言:javascript
复制
  Normal   Pulling    30s (x4 over 2m2s)  kubelet, minikube  pulling image "docker.mydomain.com:30500/vision-ssh"
  Warning  Failed     30s (x4 over 2m2s)  kubelet, minikube  Failed to pull image "docker.mydomain.com:30500/vision-ssh": rpc error: code = Unknown desc = Error response from daemon: Get http://docker.mydomain.com:30500/v2/: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
  Warning  Failed     30s (x4 over 2m2s)  kubelet, minikube  Error: ErrImagePull
  Warning  Failed     19s (x6 over 2m2s)  kubelet, minikube  Error: ImagePullBackOff
  Normal   BackOff    4s (x7 over 2m2s)   kubelet, minikube  Back-off pulling image "docker.fccma.com:30500/vision-ssh"

如果我试图以图像的名称指定协议,它会抱怨:

代码语言:javascript
复制
couldn't parse image reference "https://docker.mydomain.com:30500/vision-ssh": invalid reference format

遵循此指南以创建图像注册表。它已经被保护(HTTPS协议,并受用户/密码的保护)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-29 14:42:22

/etc/hosts文件中,服务器docker.mydomain.com映射到127.0.0.1。我在码头医生中看到,本地注册中心总是被认为是不安全的。如果我使用映射到外部IP的名称,那么Docker将尝试https

票数 3
EN

Stack Overflow用户

发布于 2019-01-29 13:19:10

您的私人码头注册表可能不安全。如果它是安全的私有注册中心,它总是使用https,否则它会引用http。

有关更多细节,请参阅doc:

代码语言:javascript
复制
Docker uses the https:// protocol to communicate with a registry, unless the registry is allowed to be accessed over an insecure connection. Refer to the insecure registries section for more information.

https://docs.docker.com/engine/reference/commandline/dockerd/#insecure-registries

因此,要强制https,保护您的注册表。网上有许多文章可用于保护您的注册中心。

票数 1
EN

Stack Overflow用户

发布于 2019-01-29 18:16:34

在容器注册服务前面运行https代理服务。将nginx视为https代理

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54420158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档