3

google/docker-registry 容器是否仅用于从 Google Cloud Storage 推送/拉取图像?我目前正在按照他们在 Git 上的指示运行 docker-registry 容器,但似乎无法从我的存储桶中提取。

我从以下开始:

sudo docker run -d -e GCS_BUCKET=mybucket -p 5000:5000 google/docker-registry

我有一个存储在 Cloud Storage 中的 .tar Docker 映像,位于 mybucket/imagename.tar。但是,当我执行时:

sudo docker pull localhost:5000/imagename.tar

结果是:

2014/07/10 19:15:50 HTTP 代码:404

我做错了吗?

4

2 回答 2

4

您需要到docker push注册表而不是手动复制图像 tar。

从你的形象是:

docker run -ti --name gcloud-config google/cloud-sdk \
  gcloud auth login
docker run -ti --volumes-from gcloud-config google/cloud-sdk \
  gcloud config set project <project>
docker run -d -e GCS_BUCKET=bucketname -p 5000:5000 \
  --volumes-from gcloud-config google/docker-registry
docker tag imagename localhost:5000/imagename
docker push localhost:5000/imagename

然后从您要运行图像的地方(例如:GCE):

docker run -d -e GCS_BUCKET=bucketname -p 5000:5000 google/docker-registry
docker run localhost:5000/imagename
于 2014-07-11T18:15:09.657 回答
0

使用 google/docker-registry 时,它已预先配置为使用 google 存储桶。

它应该适用于任何存储(如果配置被覆盖),但它的目的是与谷歌基础设施一起使用。

当没有 docker 注册表在 docker 主机之间手动移动图像时,应使用导出图像的 tar 文件。

您不应将 tar 文件上传到存储桶。

要上传图像,您应该推送到 docker-registry 容器,它将图像保存在存储桶中。

运行 docker 注册表容器的谷歌云计算实例必须配置为对存储桶具有写入/读取权限。

于 2015-01-02T12:05:57.700 回答