`docker pull`返回`拒绝:来自私人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
回报:`docker pull`返回`拒绝:来自私人gitlab注册表的禁止访问
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
已被捕获。
如果这是一个经过身份验证的注册表,那么您需要在正在构建此计算机的计算机上运行docker login <regitsryurl>
。
这只需要为每个主机完成一次。然后该命令将文件缓存在文件中
$ 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
按tarun-lalwani的回答,这应该然后添加AUTH到配置,以供将来使用(docker pull
的等)。
如果这是一个经过身份验证的注册表,那么您需要在您正在构建的机器上运行docker login'。这只需要做一次 –
@TarunLalwani,它返回'未经授权:需要验证'。也许它与我在gitlab上的权限有关。我会检查并通知你。 –
@TarunLalwani,你已经指出了确切的原因。请张贴它作为答案,所以我可以批准。 –