2

作为 CI jenkins 工作的一部分,我正在尝试将 docker 图像推送到工件。我安装了一个带有 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?

4

2 回答 2

2

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

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

于 2016-12-21T21:34:49.400 回答
0

由于您询问如何拉取,因此这些步骤适用于证书 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
于 2018-07-07T14:23:46.193 回答