Docker:google / docker-registry容器用法

时间:2014-07-10 20:55:51

标签: docker google-cloud-storage docker-registry

google / docker-registry容器是否仅用于从Google云端存储中推送/提取图片?我目前在Git上关注他们的instructions并且运行了docker-registry容器,但似乎无法从我的存储桶中取出。

我开始时:

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

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

sudo docker pull localhost:5000/imagename.tar

结果是:

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

我这样做错了吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

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

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

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