【问题标题】:Docker: google/docker-registry container usageDocker:google/docker-registry 容器使用
【发布时间】:2015-01-08 10:05:57
【问题描述】:

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

我是这样开始的:

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

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

sudo docker pull localhost:5000/imagename.tar

结果:

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

我做错了吗?

【问题讨论】:

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


    【解决方案1】:

    您需要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
    

    【讨论】:

    • 感谢您的帮助。在完全遵循这些命令之后,它在“docker push localhost:5000/imagename”命令之后产生了以下错误:
    • docker@boot2docker:~$ docker push localhost:5000/imagename 2014/07/15 22:17:07 错误:无效的注册表端点:获取localhost:5000 v1/_ping:拨打 tcp 127.0.0.1 :5000: 连接被拒绝
    • 请注意,在前 3 个“docker run”命令中的每一个之后,我键入“exit”以退出容器并运行下一个。让我知道是否有其他方法可以做到这一点。
    • docker ps -a 应该为您提供有关google/docker-registry 退出状态的更多信息
    • docker@boot2docker:~$ docker ps -a a655b6c18ddb google/docker-registry:latest /bin/sh -c 'cd /dock 6 min utes ago Exited (3) 6 seconds ago jolly_curie e2eab59f6be8 google /cloud-sdk:latest /bin/sh -c bash 12 mi nutes ago Exited (0) 11 分钟前 Grave_turing 4ff82430b78a google/cloud-sdk:latest /bin/sh -c bash 16 mi nutes ago Exited (130) 12 分钟以前 gcloud-config
    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 2016-10-22
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 2017-07-18
      相关资源
      最近更新 更多