Docker (за прокси-сервером) извлекает данные из реестра контейнера Azure, но из реестра-1.docker.io выдает сертификат, подписанный неизвестной ошибкой органа - PullRequest
0 голосов
/ 24 апреля 2019

В Ubuntu 18.04 VM

Я за прокси, я настроил конфигурацию докера с тем же прокси.

Я создал реестр контейнера Azure, и при попытке извлечения Docker из реестра он работает.

Но при попытке:

$ узел запуска докера: 6

Я получаю ошибку: «docker: ответ об ошибке от демона: Get https://registry -1.docker.io / v2 / : x509: сертификат подписан неизвестным органом.»

Я добавил реестр в /etc/docker/daemon.json:

{

"Небезопасные реестры": ["registry-1.docker.io", "myazureContainerRegistry.azurecr.io"]

}

При выполнении вышеуказанного шага «$ docker run myazureContainerRegistry.azurecr.io/myimage:tag» работает, но «$ docker run node: 6» по-прежнему выдает ошибку сертификата.

Я добавил сертификат для "* .docker.io" в /etc/docker/certs.d/docker.io, а также в / usr / local / share / ca-certificate (sudo apt update-ca- сертификаты), все еще не работает.

Я также пытался:

  1. $ curl -k https://registry -1.docker.io /

  2. $ wget https://registry -1.docker.io / --no-check-Certificate

Оба эти шага работают, но с докером (для запуска / извлечения узла: 6) я все еще получаю ошибку сертификата.

Вывод «$ docker --version» выглядит так: «Docker version 18.09.2»

Вот как выглядит мой ~ / .docker / config.json:

config.json

Я ожидаю, что "Docker Run Node: 6" успешно вытянет образ, но на самом деле выдает ошибку

1 Ответ

0 голосов
/ 24 апреля 2019

Для вашей проблемы, прежде всего, вам необходимо иметь сертификат в ~ / .docker / config.json. Затем вы можете вытащить изображение из реестра без входа в систему. Затем вы можете выполнить команду, не потянув изображение раньше. для вас команда такая:

docker run registry-1.docker.io/node:6

С моей стороны, config.json понравится:

enter image description here

И я могу выполнить команду следующим образом:

enter image description here

URI реестра в концентраторе Docker: https://index.docker.io/v1/charlesjunqiang.

Обновление

Если вы используете файл сертификата для аутентификации реестра Docker. Затем необходимо выполнить некоторые шаги для проверки подлинности реестра Docker на клиентском компьютере.

One:

Добавить файл сертификата в каталог /usr/local/share/ca-certificates/docker-dev-cert/ с именем yourname.crt. Затем выполните команды:

sudo update-ca-certificates
sudo service docker restart

Secord:

Создайте каталог в каталоге /etc/docker/certs.d с тем же именем, что и реестр, например, myregistry.azurecr.io. Затем добавьте в него файл сертификата с именем yourname.cert. Также вы должны добавить файл как .key, который автоматически создается при создании файла сертификата.

Затем вы можете войти в реестр и запустить команду docker run registry-1.docker.io/node:6 как хотите.

На моей стороне скриншоты результатов.

enter image description here enter image description here

...