【问题标题】:where does the google gcr images gets stored in google storage?谷歌 gcr 图像在哪里存储在谷歌存储中?
【发布时间】:2019-01-14 11:35:43
【问题描述】:
不知不觉我已经从我的项目中删除了以下存储桶
artifacts.<PROJECT-ID>.appspot.com
us.artifacts.<PROJECT-ID>.appspot.com
这已删除 gcr 中的所有图像。让我知道上述存储桶是存储 gcr 图像的地方还是其他地方?
另外,当我创建一个新图像并将其推送到 gcr 时,gcr 控制台中所有已删除的图像都已恢复。但是每当我尝试提取任何旧图像时,它都会抛出“未知 blob”错误。
【问题讨论】:
标签:
google-cloud-platform
google-container-registry
【解决方案1】:
是的,这些存储桶是构建和存储 docker 容器工件的地方。(工件是构建步骤的结果,加起来形成一个图像)
然后它们会被 Google Container Registry(即gcr.io)引用,但它们仍会位于您的存储桶中。
由于您删除了存储桶及其内容,您将在构建的映像中丢失旧的构建步骤,这就是您收到 error pulling image configuration: unknown blob 错误消息的原因。
例如,我在this documentation 之后上传了一张新图片,之后我删除了artifacts.<PROJECT-ID>.appspot.com 存储桶。然后我用标签重新上传了它(我用quickstart-image:tag1,当这样拉它时:
docker pull gcr.io/wave16-joan/quickstart-image:latest
我收到了error pulling image configuration: unknown blob 错误消息,因为它缺少我在之前的构建中已有的步骤。
但是,这样做:
docker pull gcr.io/wave16-joan/quickstart-image:tag1
允许我提取图像,但图像不可用。
关于您的第二个问题,我相信您之所以在 Container Registry 中看到对您删除的图像的引用,是因为 GCR 仍在保存对构建这些图像的步骤的引用,但是由于它们已被删除,他们无法被拉动。