【问题标题】:how to run a big docker image on the Google Cloud Platform?如何在谷歌云平台上运行一个大的 docker 镜像?
【发布时间】:2018-11-21 14:43:32
【问题描述】:

我想运行一个相当大的 docker 映像(~6 GB)。我可以使用 Google Cloud Platform cloudshell 从配置文件创建 docker 图像

gcloud builds submit --timeout=36000 --tag gcr.io/docker-ml-dl-xxxx/docker-anaconda-env-ml-dl

这工作得很好,我可以看到构建成功
https://console.cloud.google.com/cloud-build/

我也可以在Registry Container看到我的图片:
https://console.cloud.google.com/gcr/images/docker-ml-dl-xxxxx

到目前为止一切顺利。问题是当我尝试从cloudshell 运行此图像时:

xxxxx@cloudshell:~ (docker-ml-dl-xxxxx)$ docker run gcr.io/docker-ml-dl-xxxxx/docker-anaconda-env-ml-dl
Unable to find image 'gcr.io/docker-ml-dl-xxxx/docker-anaconda-env-ml-dl:latest' locally
latest: Pulling from docker-ml-dl-xxxx/docker-anaconda-env-ml-dl
993c50d47469: Pull complete
c71c2bfd82ad: Pull complete
05fbbe050330: Pull complete
5586ce1e5329: Pull complete
1faf1ec50c57: Pull complete
fda25b84aec7: Pull complete
b5b4ca70f42c: Extracting [=======================>                           ]    708MB/1.522GB
0088935a1845: Download complete
36f80eb6aa84: Download complete
b08b38d2d4a3: Download complete
5ae3364fe2cf: Download complete
25da48fc753b: Downloading [==================================================>]  5.857GB/5.857GB
302cfeb76ade: Download complete
1f6d69ed4c84: Download complete
58c798a01f92: Download complete
docker: write /var/lib/docker/tmp/GetImageBlob997013344: no space left on device.
See 'docker run --help'.

好的,所以我的 docker 映像太大了,无法从 cloudshell 运行。
它是否正确 ?

其他/最好的选择是什么? (为了 100% 我可以在我的 Mac 上运行 docker 镜像)

  • 创建自定义虚拟机
  • 具有 10 GB 存储空间
  • 在此 VM 上安装所需的所有软件:docker gcloud ...

我需要开发和运行机器学习和深度学习代码(这是探索阶段,而不是 Kubernetes 的部署阶段)。

这是云上最好的作品吗?

【问题讨论】:

  • 6GB 对于一个 docker 镜像来说实在是太大了。它真的需要那么大吗?
  • 问题与machine-learning 无关 - 请不要向标签发送垃圾邮件(已删除)。
  • 是的,这是巨大的。我有一个带有很多包和配置文件(spacy,nltk)的acaconda env。显然这需要优化,但这不是目前的问题。是的,这不是 ML 主题,但我想知道在云上进行 ML 探索工作的最佳方式。重点是 ML,而不是 300 MB RedHat docker 映像上的开发人员。这就是我添加标签的原因,但这并不好。感谢您的清理。
  • Cloud Shell 为您提供 5 GB 的总磁盘空间。为什么要尝试在 Cloud Shell 中运行容器?
  • 您对开发需要 Anaconda python 环境的 DL NLP 代码有什么建议,其中包括许多 ML 包,如 Tensorflow Keras、SHAP、LIME(而且似乎只有几 GB,不要问我为什么,我也在研究它)以及数据存储在 BigQuery (200 GB) 中的原因。我不是在谈论在生产中运行代码。我是云上的新手。我知道如何在 Hadoop 数据湖上做到这一点。期待最佳实践和建议。

标签: docker google-cloud-platform gcloud


【解决方案1】:

Docker 映像太大,无法在 Cloud Shell 上运行。您可以改为在 Kubernetes 或 Compute Engine 上运行它,但由于您仍处于早期阶段,并且您已经说过您可以在本地运行您需要的工具,那么这对于您的需求可能不是必需的。展望未来,当您更关心性能时,您可能需要考虑Cloud ML EngineBigQuery ML 等解决方案。

【讨论】:

  • 谢谢,这是我使用计算引擎所做的。即使在自定义 VM 中添加 20 GB 磁盘,您也必须检查是否在“/mnt/stateful_partition”中仍有足够的磁盘空间用于 Docker 映像。还有一些其他有用的选项,例如将重启策略更改为“从不”或“为 STDIN 分配缓冲区”。
猜你喜欢
  • 2020-11-25
  • 1970-01-01
  • 2020-02-16
  • 2015-07-28
  • 1970-01-01
  • 2021-07-15
  • 2019-11-25
  • 2021-07-31
  • 1970-01-01
相关资源
最近更新 更多