Push\Pull docker 图片到 Artifactory

Push\Pull docker images to Artifactory

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

现在我卡在了如何推送 docker 文件的输出图像上。 我试过了:

<!-- 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 存储库?

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

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

既然你问的是如何拉取,这些步骤适用于证书 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 如果您使用的是 public 存储库。确认您可以对 "artifactory-resolverhost" 执行 ping 以确保可以从您的网络访问

然后你应该能够拉取属于 docker 组的用户的图像,例如

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

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

docker images