使用https访问Docker私有注册表

使用https访问Docker私有注册表,docker,kubernetes,Docker,Kubernetes,我有一个私有注册表,它是通过https协议访问的。 但是Kubernetes+Docker总是尝试使用http协议而不是 如何强制使用https协议 声明Pod的yaml文件片段: containers: - name: apl image: myserver.com:8080/myimage 我的环境详情: CentOS 7.3 Docker 18.06 库伯内特斯Minikube 1.13.1 Kubernetes日志中的错误消息: Normal Pulli

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

如何强制使用https协议

声明Pod的yaml文件片段:

  containers:
    - name: apl
      image: myserver.com:8080/myimage
我的环境详情:

CentOS 7.3 Docker 18.06 库伯内特斯Minikube 1.13.1 Kubernetes日志中的错误消息:

  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"
如果我试图以映像的名称指定协议,它会抱怨:

couldn't parse image reference "https://docker.mydomain.com:30500/vision-ssh": invalid reference format

按照此步骤创建图像注册表。它已经是安全的HTTPS协议,并受用户/密码保护。

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

有关更多详细信息,请参阅文件:

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,请保护您的注册表。网上有许多文章可以保护您的注册表。

在/etc/hosts文件中,服务器docker.mydomain.com映射到127.0.0.1。我在报纸上读到,本地注册中心总是被认为是不安全的。
如果我使用映射到外部IP的名称,则Docker会尝试https。

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

它已经安全了。然后呢。