【问题标题】:Push\Pull docker images to ArtifactoryPush\Pull docker 镜像到 Artifactory
【发布时间】:2020-10-30 02:15:33
【问题描述】:

我正在尝试将 docker 图像推送到工件,作为 CI jenkins 工作的一部分。 我安装了一个带有 url art:8080 的 Artifactory 我在 Win2016 上安装了 Docker 并构建了我的 dockerfile。

现在我坚持如何推送 dockerfile 的输出图像。 我试过了:

<!-- language: lang-none -->

docker tag microsoft/windowsservercore art:8080/imageID:latest
docker push art:8080/docker-local:latest

但我收到一条错误消息:

Get https://art:8080/v2/: dial tcp: lookup artifactory: getaddrinfow: No such host is known.

https 来自哪里? 如何在我的工件中推送到正确的本地 docker repo?

【问题讨论】:

  • 您是否按照此处所述设置了反向代理:jfrog.com/confluence/display/RTF/… ?
  • 我想使用 Docker->Artifactory 和 HTTP,但找不到在哪里配置 --insecure-registry 标志。 docker 文档只提到了在 Linux 上的位置。有什么想法吗?
  • Chen,如果您想将其作为 --insecure-registry 标志推送,并且遇到问题,请关闭/接受此票证,并针对该特定问题打开一个新票证。

标签: docker artifactory windows-server-2016


【解决方案1】:

Docker 要求您使用 https。我所做的(我使用 Nexus 而不是 Artifactory)是使用 nginx 设置反向代理。这是该文档 - https://www.jfrog.com/confluence/display/RTF/Configuring+a+Reverse+Proxy

或者,您可以将 Docker 设置为不需要 https(虽然不推荐)

【讨论】:

  • 所以我需要设置一个新的服务器来用作 Docker 的反向代理?
  • @chen 你可以这样做。我所做的是我有一台运行 Docker 的服务器。然后我在同一台服务器上使用 Nexus docker 镜像和 docker NGINX 镜像。我很幸运。
  • 不确定它是如何工作的。如何通过NGINX(proxy)镜像将本地镜像推送到Nexus(Artifactory)镜像?
  • 我知道一个 --insecure-registry 标志,你知道如何在 Windows 上设置它吗?顺便说一句,我是否必须安装 hyper-v 并在其中创建一个 vm 才能推送到我的生产工件
  • 代理处理流量。那么它将做什么,它接受 https 请求,并代理它(使用安全证书)并将其作为 http(或虎钳诗句。我不记得)提供给 docker 存储库。如果您不使用 docker-machine(使用 Windows 的 beta 版本),我认为您不需要创建 VM 和所有这些?我不使用 Docker for Windows,但您应该为该问题另开一张票。
【解决方案2】:

由于您询问如何提取,因此这些步骤适用于证书 CA 在组织外部不受信任的企业工件

$ sudo mkdir -p /etc/docker/certs.d/docker-<artifactory-resolverhost>
$ sudo cp /tmp/ca.crt /etc/docker/certs.d/docker-<artifactory-resolverhost>
$ sudo chown root:docker /etc/docker/certs.d/docker-<artifactory-resolverhost>/ca.crt
$ sudo chmod 740 /etc/docker/certs.d/docker-<artifactory-resolverhost>/ca.crt

其中 ca.crt 是 CA 可信证书的 base-64 链,是存储库的解析器主机名。例如。 repo.jfrog.org 如果您使用的是公共存储库。要确认您可以对“artifactory-resolverhost”执行 ping 操作,以确保可以从您的网络访问

那么您应该能够使用属于 docker 组的用户提取图像。

docker pull docker-<artifactory-resolverhost>/<repository-name>/rhel7-tomcat:8.0.18_4

然后您可以使用以下命令查看下载的图像

docker images

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多