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
我这样做错了吗?
答案 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云计算实例必须配置为对存储桶具有写入/读取权限。