使用https访问Docker私有注册表
我有一个私有注册表,它是通过https协议访问的。 但是Kubernetes+Docker总是尝试使用http协议而不是 如何强制使用https协议 声明Pod的yaml文件片段:使用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
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代理它已经安全了。然后呢。