Проблемы с подключением к реестру Docker, хранящемуся в Nexus 3 Preview на Azure VM

В основном у меня проблемы с подключением к реестру докеров, которые я пытаюсь сделать, используя последнюю версию Nexus Preview. Сначала я установил Sonotype Nexus 3 Preview на облачный сервер MS Azure под управлением Ubuntu 14.04 trusty. Позволяет назвать это место

my-azure-site.cloudapp.net:8443/nexus, чтобы получить доступ к интерфейсу Nexus. Я использую это руководство от начала до конца - https://books.sonatype.com/nexus-book/3.0/reference/index.html

Так что я знаю, что единственный способ подключиться к удаленному репозиторию Docker - через SSL, поэтому я включил HTTPS в Nexus, как показано с помощью порта 8443. Затем я создал прокси-сервер Docker с именем docker-hub, чтобы иметь возможность извлекать образы из Docker Central Hub, как описано в разделе 8.3 руководства. Nexus показывает, что репо имеет URL

https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-hub/

Затем я создал частное размещенное хранилище с именем docker-mySoftware с портом подключения HTTPS-докера 18444, как описано в разделе 8.4 руководства, и Nexus показывает URL-адрес как

https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-mySoftware/

Затем я создал групповое хранилище с именем docker-all, содержащее 2 выше, с портом подключения HTTPS-докера 18443, как описано в разделе 8.5 руководства, а Nexus отображает URL-адрес как

https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-all/

Сначала, когда я попытался выполнить следующее, как описано в разделе 8.7, чтобы протестировать прокси, используя мой локальный докер-клиент, также работающий с Ubuntu на моем физическом ноутбуке

Поиск докера sudo my-azure-site.cloudapp.net:18443/postgres

Я получил что-то, что есть сертификат CA для my-azure-site.net:18443, но не для my-azure-site.cloudapp.net:18443, поэтому я заново создал сертификат с помощью keytool для включения части cloudapp. Теперь, когда я повторил это, я получаю

Ошибка ответа от демона: неожиданный код состояния 404

Кстати, я забыл упомянуть, что заранее открыл порты 18444 и 18443 на консоли Azure.

Я попытался воссоздать репозитории, переиндексировать прокси-репозиторий, воссоздать сертификаты в облаке Nexus Azure, используя

sudo docker -d --insecure-registry my-azure-site.cloudapp.net:18443 на моем клиентском компьютере докера, надеюсь, обойти все эти сертификационные штучки, но все равно не повезло. Я пробовал разные комбинации URL, такие как

Докер sudo выполняет поиск my-azure-site.cloudapp.net:18443/nexus/postgres и https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-all/nexus и т. д.

2 ответа

Решение

Как вы правильно определили, установка контекста-пути вызвала проблему. Это оказалось ошибкой, и это было исправлено. Следующая версия Nexus 3 (Milestone 6) будет включать это исправление и позволит вам использовать контекстный путь.

Однако имейте в виду, что контекстный путь не будет частью URL для Docker, поскольку формат реестра Docker и, следовательно, также клиент Docker НЕ поддерживают контекстные пути. Таким образом, для конкретного использования Docker вы будете продолжать использовать порты, как описано в документации.

Обновление: версия Milestone 6 выпущена и содержит соответствующее исправление.

Таким образом, в основном это означает, что для каждого отдельного репозитория, который вы хотите разместить, вам нужно будет настроить другой порт? Это не очень чисто, особенно в именах изображений.

Другие вопросы по тегам