Kubernetes Private Docker 注册表不工作 - 命令行替代工作,但 k8s 无法拉取图像
Kubernetes Private Docker Registry not working - Command-Line Alternative working, but k8s unable to pull image
我有以下 docker-compose.yaml 私有 docker 注册中心 运行 在 minikube 上:
version: '3'
services:
registry:
restart: always
image: registry:2
command: ["/bin/sh", "-ec","sleep 1000"]
ports:
- 443:443
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
REGISTRY_HTTP_TLS_KEY: /certs/domain.key
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- /home/usr/registry/data:/var/lib/registry
- /home/usr/registry/certs:/certs
- /home/usr/registry/auth:/auth
当我执行 kompose up
时,注册表应该启动并 运行ning。但是做 docker login localhost:443
只会给我一个连接被拒绝的错误。如果我 运行
docker run -d --restart=always --name registry -v `pwd`/auth:/auth -v `pwd`/certs:/certs -v `pwd`/certs:/certs -e REGISTRY_AUTH=htpasswd -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key -p 443:443 registry:2
一切正常,我可以登录我的私人注册表。
这很重要的原因是我有一个位于私有注册表中的 webapp-image,应该由 kubernetes (minikube) 从中提取。但是,我总是会收到 CrashLoopBackoff 错误,我认为这是因为注册表不能是来自 kubernetes 的 运行 并且顺便说一句它无法访问。我错了什么?
解决方案是在 minikube 中设置注册表,port-forward 从本地主机设置注册表,以便将映像推送到 minikube 注册表。
我有以下 docker-compose.yaml 私有 docker 注册中心 运行 在 minikube 上:
version: '3'
services:
registry:
restart: always
image: registry:2
command: ["/bin/sh", "-ec","sleep 1000"]
ports:
- 443:443
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
REGISTRY_HTTP_TLS_KEY: /certs/domain.key
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- /home/usr/registry/data:/var/lib/registry
- /home/usr/registry/certs:/certs
- /home/usr/registry/auth:/auth
当我执行 kompose up
时,注册表应该启动并 运行ning。但是做 docker login localhost:443
只会给我一个连接被拒绝的错误。如果我 运行
docker run -d --restart=always --name registry -v `pwd`/auth:/auth -v `pwd`/certs:/certs -v `pwd`/certs:/certs -e REGISTRY_AUTH=htpasswd -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key -p 443:443 registry:2
一切正常,我可以登录我的私人注册表。 这很重要的原因是我有一个位于私有注册表中的 webapp-image,应该由 kubernetes (minikube) 从中提取。但是,我总是会收到 CrashLoopBackoff 错误,我认为这是因为注册表不能是来自 kubernetes 的 运行 并且顺便说一句它无法访问。我错了什么?
解决方案是在 minikube 中设置注册表,port-forward 从本地主机设置注册表,以便将映像推送到 minikube 注册表。