'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.).