我正在使用shippable将私有docker映像推送到Google容器注册表,然后再从笔记本电脑本地或Google Compute
Engine实例内部提取。
我知道该命令gcloud preview docker pull gcr.io/projectID/image- name
有效,但是我不能依赖gcloud被安装在有人可能需要从中提取映像的每台计算机上。
如果我docker-compose up -d
在计算机上运行,则会出现以下错误:
Pulling image gcr.io/projectID/image-name...
Pulling repository gcr.io/projectID/image-name
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 31, in main
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 464, in up
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.project", line 208, in up
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.service", line 214, in recreate_containers
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.service", line 199, in create_container
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.progress_stream", line 37, in stream_output
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.progress_stream", line 50, in print_output_event
compose.progress_stream.StreamOutputError: Error: Status 403 trying to pull repository projectID/image-name: "Access denied."
是否可以通过某种形式的OAuth或密钥来认证或访问图像?我想避免在需要拉取映像的每台计算机上安装gcloud,并且映像必须保持私有。
我已经尝试过了,gcloud preview docker -a
但这不是我要寻找的解决方案。
预先感谢您的任何帮助。
如果要使用香草泊坞窗在不在Google Compute Engine(即本地)中的计算机上使用Google Container
Registry,则可以按照Google的说明进行操作。
两种主要方法是使用访问令牌或JSON密钥文件。
请注意,_token
和_json_key
是您为用户名(-u
)提供的实际值
访问令牌
$ docker login -e 1234@5678.com -u _token -p "$(gcloud auth print-access-token)" https://gcr.io
JSON密钥文件
$ docker login -e 1234@5678.com -u _json_key -p "$(cat keyfile.json)" https://gcr.io
要创建密钥文件,您可以按照以下说明进行操作:
您可以在此处查看有关生成密钥文件的Google文档。
我在kubernetes(minikube)上有问题,从Docker上的本地图像库中提取图像。创建了Docker存储库:
问题内容: 我正在努力让Kubernetes与我的私有hub.docker.com注册表映像一起使用。 我正在使用kubectl版本: 和Mac OS X上的Vagrant 我按照此处给出的说明进行操作:https : //github.com/kubernetes/kubernetes/blob/release-1.1/docs/user- guide/images.md#pre-pulling
问题内容: 我正在使用docker-compose命令运行多个容器。问题是我的docker- compose必须从公共存储库中提取一些图像,并从私有存储库中提取一些图像。我打算做的是将所有必需的映像推送到私有存储库,但是如何使docker- compose从私有存储库中提取映像。 简而言之->当图像仅在那里可用时,如何指向私有存储库 问题答案: 使用命令。(官方文件) 输入您的凭据,然后,只有拥有
问题内容: 我正在尝试运行一个容器,该容器将公开私有GitHub存储库上的软件包中的golang服务。 由于我与GCE合作,因此我的入门图片是google / debian:wheezy。 安装所有必需的依赖项和工具后,我正在运行 包裹是私人仓库。 我添加了GitHub SSH密钥以允许从私有存储库克隆到docker文件: 尽管如此,当go尝试克隆存储库时,我在go get流程中遇到了一个错误:
问题内容: 我已经建立了一个4节点kubernetes集群,该集群运行都在CoreOS上运行的多容器Pod。这些图像来自公共和私人存储库。现在,我必须登录到每个节点,并在每次更新图像时手动下拉图像。我希望能够自动将其拉出。 我试过在每台服务器上运行docker登录并将.dockercfg文件放在/ root和/ core中 我也使用.docker / config.json完成了上述操作 我已将密
问题内容: 我创建了两个Docker容器。第一个提供专用的Docker注册表,第二个提供官方Docker注册表的镜像: 现在,我想将两者结合起来。每当用户 提取 图像时,都应首先查询私有注册表,然后查询镜像。当图像被 推送时, 它们仅应被推送到私有注册表。 我不知道如何做到这一点。任何帮助表示赞赏。 问题答案: 您不能仅仅强制所有 docker push 命令推送到您的私有注册表。原因之一是您可以