На хосте docker я создаю .docker / config. json с:
docker login https://project-docker.artifactory.company.com -u User -p Password
В родительском docker, затем:
docker pull project-docker.artifactory.company.com/MyImage:1.0.0
работает нормально , изображение загружается из реестра артефактов компании.
И я делаю:
docker rmi project-docker.artifactory.company.com/MyImage:1.0.0
, чтобы удалить его из локального репо.
Затем я запускаю docker вне docker с:
docker run -v /var/run/docker.sock:/var/run/docker.sock AnotherImage
Внутри дочернего контейнера (или дочернего элемента) я делаю:
docker login https://project-docker.artifactory.company.com -u User -p Password
, чтобы создать файл аутентификации /docker/config.json , он работает нормально.
Затем, когда я делаю:
docker pull project-docker.artifactory.company.com/MyImage:1.0.0
Я получаю сообщение об ошибке:
Ответ об ошибке от демона: Получить https://project-docker.artifactory.company.com/v2/MyImage/manifests/1.0.0: неизвестно: требуется аутентификация
Когда я делаю:
curl -uUser:Password https://project-docker.artifactory.company.com/v2/MyImage/manifests/1.0.0
, тогда curl удается загрузить этот ответ.
Так что curl работает изнутри соскабливает контейнер, но демон docker терпит неудачу, в то время как извлечение docker из родного брата.
Я знаю, что мы используем виртуальные суб-репозитории, потому что project- docker .artifactory.company.c om указывает на тот же IP-адрес, что и project2- docker .artifactory.company.com и docker .artifactory.company.com.
Как получить более точную информацию о том, где что-то идет не так?