从GCR(Google容器注册表)导出Docker图像

从GCR(Google容器注册表)导出Docker图像,docker,google-cloud-platform,google-kubernetes-engine,google-container-registry,Docker,Google Cloud Platform,Google Kubernetes Engine,Google Container Registry,我使用GCR(googlecontainerregistry)作为Docker映像注册表,为GKE(googlekubernetes引擎)部署服务。我的渗透测试团队要求我将GCR中的Docker图像提供给他们进行测试 我可以在本地创建Docker图像,但这并不是他们想要的 如何将Docker映像从GCR下载到我的电脑 接下来,我如何复制Docker图像并将其交给渗透测试团队。引用文档: 您可以通过安全的HTTPS端点访问容器注册表,该端点允许您从任何系统、VM实例或您自己的硬件推送、拉取和管理映

我使用GCR(googlecontainerregistry)作为Docker映像注册表,为GKE(googlekubernetes引擎)部署服务。我的渗透测试团队要求我将GCR中的Docker图像提供给他们进行测试

我可以在本地创建Docker图像,但这并不是他们想要的

如何将Docker映像从GCR下载到我的电脑


接下来,我如何复制Docker图像并将其交给渗透测试团队。

引用文档:

您可以通过安全的HTTPS端点访问容器注册表,该端点允许您从任何系统、VM实例或您自己的硬件推送、拉取和管理映像。此外,您可以使用Docker credential helper命令行工具将Docker配置为直接使用容器注册表进行身份验证

您可以检查继续向一个或多个用户授予项目内访问容器注册的权限的方式:

Pull (Read Only)    
roles/storage.objectViewer  Storage Object Viewer :    
 - storage.objects.get
 - storage.objects.list
完成此操作后,您可以安装经典的google Cloud SDK并登录,您应该能够对docker进行身份验证并拉取正在运行的映像:

  $ gcloud auth configure-docker
  $ docker pull [HOSTNAME]/[PROJECT-ID]/[IMAGE][:TAG]
请注意,您还可以决定创建一个公共映像,并仅运行经典的:

  $ docker pull [HOSTNAME]/[PROJECT-ID]/[IMAGE][:TAG]
说明如何操作的指南

使现代化 由于您似乎有兴趣将其以良好的格式保存在本地磁盘上,并将其移交给其他团队,因此可以采取以下步骤:

$ gcloud auth configure-docker
$ docker pull [HOSTNAME]/[PROJECT-ID]/[IMAGE][:TAG]
$ docker save IMAGENAME:TAG -o FILENAME.tar
请注意,就我现在所知,仅当图像正在运行时,您才可以保存它们。
docker images


进一步的文档:

你检查过它是否真的解决了你的问题吗?@GalloCedrone,我当时正忙着下载Docker图像,并用USB驱动器将其交给渗透测试团队。现在,这几乎可以肯定是我对Docker showing缺乏了解,但是在成功拉取之后,我如何访问实际的图像文件?我只是不明白这是怎么回事吗?渗透测试团队是一个签约团队,因此我不想让您访问我们的整个GCR。@GalloCedrone,我已经阅读了我的问题,值得赞扬的是,我没有表示需要很好地将图像交给渗透测试团队。我更新了我的问题,以更清楚地表达这一点。正确的方法是继续进行,我猜渗透测试团队更喜欢的方法(如果他们可以访问互联网)就是我向您描述的方法。不过,既然你有兴趣这么做,我已经更新了答案,说明如何做到这一点