当前位置: 首页 > 知识库问答 >
问题:

OpenShift私有docker注册表无法推送[docker-maven-plugin]

南门志
2023-03-14

我有一个小问题与我的docker注册表上openshift源安装

我创建了一个docker注册表pod:

 oc get pods
    NAME                            READY     STATUS    RESTARTS   AGE
    docker-registry-3-h46uj         1/1       Running   0          14m

创建了一条路线:

oc get routes
docker-registry docker-registry.vagrant.f8 docker-registry     

创建了一个服务:

oc get service
docker-registry 172.30.14.216 <none> 5000/TCP docker-registry=default 3d

Openshift的Master是在10.0.2.235上的,只有一个节点,现在我已经创建了一个spring boot应用程序,我使用maven插件docker来构建和推送映像。

当我在本地(主计算机上)运行maven push时,工作正常,但如果我在另一台计算机上运行maven push,在maven push期间,我会遇到一些问题:

[INFO] DOCKER> ... The push refers to a repository [docker-registry.vagrant.f8/fabric8/springboot-webmvc] (len: 1)
[INFO] DOCKER> ... Sending image list
[ERROR] DOCKER> Error: Status 503 trying to push repository fabric8/springboot-webmvc: 

[ERROR] Failed to execute goal org.jolokia:docker-maven-plugin:0.13.8:push (default-cli) on project springboot-webmvc: Unable to push 'fabric8/springboot-webmvc:1.0.0-SNAPSHOT' from registry 'docker-registry.vagrant.f8' -> [Help 1]

我不明白什么是正确的docker注册表主机,

  • 是pod ip吗?
  • 服务是ip吗?
  • 是路由的主机名吗?

pom中插件的配置。xml是这样的:

 <plugin>
                <groupId>org.jolokia</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker.maven.plugin.version}</version>
                <configuration>
                 <authConfig>
                    <username></username>
                    <password></password>
                 </authConfig>
                    <images>
                        <image>
                            <name>${docker.image}</name>
                            <build>
                                <from>${docker.from}</from>
                                <assembly>
                                    <basedir>/app</basedir>
                                    <descriptorRef>artifact</descriptorRef>
                                </assembly>
                                <env>
                                    <JAVA_APP_JAR>${project.build.finalName}.jar</JAVA_APP_JAR>
                                </env>
                            </build>
                        </image>
                    </images>
                </configuration>
            </plugin>

为了进入我的私人docker注册表,我使用以下属性:

<docker.push.registry>docker-registry.vagrant.f8</docker.push.registry>

谢谢大家的帮助

共有1个答案

傅彬
2023-03-14

所以,要让路由正常工作,你需要一个路由器设置和一个解析到路由器IP的DNS。也就是说,我还没有在openshift中将注册表应用程序设置为应用程序。

 类似资料:
  • 我无法将docker映像推送到低于错误的工件注册表 登录和拉取工作正常 詹金斯档案: Dockerfile: 我不确定这是怎么回事。我可以在jenkins从属节点上手动推送图像。但使用詹金斯会产生错误 我构建工作的日志 这是我的构建日志中的内容。

  • 我无法将docker映像推送到heroku注册表。 根据docker的说法,我已成功登录: 在那之后,我运行了,我得到了一些令人困惑的错误,说我试图推送到一个不安全的repo,而de-output中的url看起来是安全的(以https开头)。我做错了什么? 我正在使用以下jib配置: jib的Maven输出:build wiht-X:

  • 我正在尝试将一个图像推送到我的docker私有存储库: Docker告诉我: push引用存储库[living-registry.com:5000/busybox]Get https://living-registry.com:5000/v1/_ping:read tcp 195.83.122.16:39714->195.83.122.16:5000:read:对等体重置连接 这些命令正在Core

  • 问题内容: 我创建了两个Docker容器。第一个提供专用的Docker注册表,第二个提供官方Docker注册表的镜像: 现在,我想将两者结合起来。每当用户 提取 图像时,都应首先查询私有注册表,然后查询镜像。当图像被 推送时, 它们仅应被推送到私有注册表。 我不知道如何做到这一点。任何帮助表示赞赏。 问题答案: 您不能仅仅强制所有 docker push 命令推送到您的私有注册表。原因之一是您可以

  • 我有一个适用于OpenShift 4.2的kubeadmin帐户,并且能够通过成功登录。 我公开了内置的docker注册表通过默认路线记录在https://docs.openshift.com/container-platform/4.2/registry/securing-exposing-registry.html 我的docker客户端在macOS上运行,并配置为信任注册表的默认自签名证书

  • 我是GitLab用户。我使用groff脚本制作一本900页的书。输出将存储在输出文件夹中。当作者进行一些更改并推送到GitLab时,Docker映像将生成这本书。 其想法是构建一个docker容器,并将该容器存储在GitLab注册表中。容器的构建工作正常,但我收到一条错误消息。 错误出现在运行脚本中。docker登录不正确。 这就是我的跑步脚本的想法。gitlab ci。yml。我收到以下错误消息