'docker pull' возвращает ' denied: access forbidden` из частного реестра gitlab
у меня есть Dockerfile который будет реализован FROM образ частного реестра. Я создаю этот файл без каких-либо проблем с Docker version 1.12.6, build 78d1802 и docker-compose version 1.8.0, build unknown, но в другую машину Docker version 17.06.1-ce, build 874a737 и docker-compose version 1.16.1, build 6d1ac21 на docker-compose build возвращает:
FROM my.private.gitlab.registry:port/image:tag
http://my.private.gitlab.registry:port/v2/docker/image/manifests/tag: denied: access forbidden
docker pull my.private.gitlab.registry:port/image:tag возвращает то же самое.
обратите внимание, что я пытался получить my.private.registry:port/image:tag и http://my.private.registry:port/v2/docker/image/manifests/tag был пойман.
2 ответов
Если это аутентифицированный реестр, то вам нужно запустить docker login <regitsryurl> на машине, где вы строите это.
это нужно сделать только один раз на хост. Затем команда кэширует auth в файле
$ cat ~/.docker/config.json
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "......="
}
}
}
Я заметил, что ваша схема URL использует протокол http-Docker необходимо настроить, чтобы разрешить небезопасные реестры.
создайте или измените свой daemon.json (обязательно в одном из следующих мест):
Linux:/etc/docker/
Windows:C:\ProgramData\Docker\config\
содержание:
{
"insecure-registries" : [ "my.private.gitlab.registry:port" ]
}
затем перезапустите Docker (а не только сеанс терминала) и повторите попытку.
после того как вы вошли в систему с:
docker login my.private.gitlab.registry:port
согласно Тарун-Лалваниответ, это должно затем добавить аутентификацию в конфигурацию для будущего использования (docker pull's etc.).