从 Docker 桌面访问部署在 Kubernetes 中的注册表时出现问题

Issue while accessing registry deployed in Kubernetes from Docker Desktop

我是 运行 Docker W10 Desktop 来试试 Camel-k。一旦在 Kubernetes 平台中完成构建,Camel-K 就需要一个存储库来推送图像。我不想配置 docker.io,因此在 Docker 桌面之上的 Kubernetes 运行 中部署了 docker 注册表。

已部署:https://github.com/Joxit/docker-registry-ui/tree/master/examples/helm/docker-registry-ui

**kubectl get pod:**
private-registry-registry-docker-registry-ui-69bdb85647-rmvhs

private-registry-ui-docker-registry-ui-6f49d78f58-d6qqt

更新中dockerdeamon.js

{
  "registry-mirrors": [],
   "insecure-registries" : [
      "private-registry-registry-docker-registry-ui:5000"
    ],
   "debug" : true,
   "experimental": true
}

添加主机条目:

127.0.0.1 private-registry-registry-docker-registry-ui

kubectl port-forward访问5000端口:

kubectl port-forward private-registry-registry-docker-registry-ui-69bdb85647-rmvhs 5000:5000

推送图像

docker tag alpine:latest private-registry-registry-docker-registry-ui:5000/alpine:latest

docker push private-registry-registry-docker-registry-ui:5000/alpine:latest

The push refers to repository [private-registry-registry-docker-registry-ui:5000/alpine]
***Get http://private-registry-registry-docker-registry-ui:5000/v2/: dial tcp 127.0.0.1:5000: connect: connection refused***

有没有人在访问部署在 Kubernetes 中的注册表时遇到类似的问题?请建议需要做什么才能解决此问题。我在 Docker 桌面 mac 上发现了类似的问题,并且尝试过但没有成功。

您的 docker deamon.js 应该如下所示:

{
  "registry-mirrors": [],
   "insecure-registries" : [
      "localhost:5000",
      "127.0.0.1:5000",
      "private-registry-registry-docker-registry-ui:5000"
    ],
   "debug" : true,
   "experimental": true
}

更新 docker deamon.js 后想要添加不安全注册表时,您必须重新启动 docker。确保你已经这样做了。确保端口 5000 在目标机器上打开。同时检查防火墙。

关于推送图像,我认为您没有 默认 注册表。你必须:

  1. 启动注册表容器 $ docker run -d -p 5000:5000 --restart=always --name registry registry:2

检查 registry 容器是 运行,执行命令:$ docker ps | grep registry,然后继续 - 标记并推送您的图像。

  1. 标记您的图片 ($ docker tag ... )

  2. 使用命令推送您的图像 ($ docker push ...)

查看类似问题:docker-push-issue,