Push \ Pull образы докеров в Artifactory

Я пытаюсь отправить образы докеров в artifactory как часть работы CI jenkins. У меня установлен Artifactory с URL-адресом: 8080 Я установил Docker на Win2016 и создал свой файл 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? Как мне нажать на правильный локальный репозиторий докеров в моем артефакте?


person chen    schedule 21.12.2016    source источник
comment
Вы настроили обратный прокси, как описано здесь: jfrog.com/confluence/display/RTF/?   -  person gjtempleton    schedule 21.12.2016
comment
Я хочу использовать Docker- ›Artifactory с HTTP, но не могу найти, где настроить флаг --insecure-registry. Документы докеров только упоминают, где это сделать в Linux. любая идея?   -  person chen    schedule 22.12.2016
comment
Чен, если вы хотите установить его как флаг --insecure-registry и у вас возникли проблемы, пожалуйста, закройте / примите этот билет и откройте новый с этим конкретным вопросом.   -  person PolarisUser    schedule 28.12.2016


Ответы (2)


Docker требует, чтобы вы использовали https. Что я делаю (я использую Nexus, а не Artifactory), так это настраиваю обратный прокси-сервер с помощью nginx. Вот документ для этого - https://www.jfrog.com/confluence/display/RTF/Configuring+a+Reverse+Proxy

В качестве альтернативы вы можете настроить Docker так, чтобы он не требовал https (хотя это не рекомендуется).

person PolarisUser    schedule 21.12.2016
comment
Итак, для этого мне нужно настроить новый сервер, который будет использоваться в качестве обратного прокси для Docker? - person chen; 22.12.2016
comment
@chen ты мог бы это сделать. Что я делаю, так это то, что у меня есть сервер, на котором работает Docker. Затем я использую образ докера Nexus и образ докера NGINX на одном сервере. Мне с этим очень повезло. - person PolarisUser; 23.12.2016
comment
Не знаю, как это работает. Как вы проталкиваете локальные образы в образ Nexus (Artifactory) через образ NGINX (прокси)? - person chen; 25.12.2016
comment
Я знаю о флаге --insecure-registry, у вас есть идеи, как установить его в Windows? Кстати, мне нужно установить Hyper-v и создать в нем виртуальную машину, чтобы подтолкнуть к моему производственному артефакту - person chen; 26.12.2016
comment
Прокси-сервер обрабатывает трафик. Итак, что он будет делать, это берет запрос https, проксирует его (с сертификатом безопасности) и передает его в репозиторий докеров как http (или vise verse. Я не могу вспомнить). Вам не нужно создавать виртуальную машину и все такое, если вы не используете докер-машину (используя бета-версию Windows), я думаю? Я не использую Docker для Windows, но вы должны открыть еще одну заявку на этот вопрос. - person PolarisUser; 28.12.2016
comment
Мне удалось отправить изображение с http, создав файл конфигурации daemin.json, поместив его в папку: C: \ ProgramData \ docker \ config \ daemon.json и настроив там enrties небезопасных реестров. Мне также пришлось настроить Nginx в Artifactory, чтобы переписать URL-адрес push. push возвращает явную недопустимую ошибку, но это не здесь. Спасибо. - person chen; 29.12.2016
comment
Замечательно, рада это слышать! Наслаждайтесь Docker! - person PolarisUser; 29.12.2016

Поскольку вы спрашиваете, как вытащить, эти шаги сработали для корпоративного артефакта, где сертификат 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 - это цепочка доверенных сертификатов ЦС по стандарту base-64 и имя хоста резолвера репозитория. Например, repo.jfrog.org, если вы использовали публичный репозиторий. Чтобы убедиться, что вы можете выполнить эхо-запрос "artifactory-resolverhost", чтобы убедиться, что он доступен из вашей сети

Затем вы сможете получить изображение с вашим пользователем, принадлежащим к группе докеров, например.

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

Затем вы можете просмотреть загруженное изображение с помощью команды ниже

docker images
person Jose Luis Soto Posada    schedule 07.07.2018