google-cloud-platform - 使用自定义 docker 镜像启动 Google Cloud AI Platform Notebooks 的要求

标签 google-cloud-platform google-compute-engine google-cloud-ml gcp-ai-platform-notebook

在 AI 平台笔记本上,the UI让您选择要启动的自定义图像。如果这样做,您会看到一个信息框,上面写着容器“必须遵循某些技术要求”:

certain technical requirements

我认为这意味着他们有一个必需的入口点、公开的端口、jupyterlab 启动命令或某事,但我找不到任何关于这些要求的文档>。

我一直在尝试对其进行逆向工程,但运气不佳。我 nmap 编辑了一个标准实例,看到它打开了 8080 端口,但将我的图像的 CMD 设置为在 0.0.0.0:8080 上运行 Jupyter Lab > 没有成功。当我在 UI 中单击“打开 JupyterLab”时,出现 504。

有没有人有相关文档的链接,或者过去有过这样做的经验?

最佳答案

您可以通过两种方式创建自定义容器:

构建衍生容器

如果您只需要安装额外的包,您应该创建一个从标准图像之一派生的 Dockerfile(例如,FROM gcr.io/deeplearning-platform-release/tf-gpu.1-13:latest),然后添加 RUN 命令以使用 conda/pip/jupyter 安装包。

conda 基础环境已经添加到路径中,因此除非您需要设置另一个环境,否则无需 conda init/conda activate。可以将需要在启动环境之前运行的其他脚本/动态环境变量添加到/env.sh,它是入口点的一部分。

例如,假设您有一个定制的 TensorFlow wheel,您想用它来代替内置的 TensorFlow 二进制文件。如果您不需要额外的依赖项,您的 Dockerfile 将类似于:

Dockerfile.example

FROM gcr.io/deeplearning-platform-release/tf-gpu:latest
RUN pip uninstall -y tensorflow-gpu && \
    pip install -y /path/to/local/tensorflow.whl

然后您需要构建它并将其推送到您的 GCE 服务帐户可以访问的地方。

PROJECT="my-gcp-project"
docker build . -f Dockerfile.example -t "gcr.io/${PROJECT}/tf-custom:latest"
gcloud auth configure-docker
docker push "gcr.io/${PROJECT}/tf-custom:latest"

从头开始构建容器

主要要求是容器必须在端口 8080 上暴露一个服务。

在 VM 上执行的 sidecar 代理程序将仅将请求发送到此端口。

如果使用 Jupyter,您还应该确保您的 jupyter_notebook_config.py 是这样配置的:

c.NotebookApp.token = ''
c.NotebookApp.password = ''
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.allow_origin_pat = (
'(^https://8080-dot-[0-9]+-dot-devshell\.appspot\.com$)|'
'(^https://colab\.research\.google\.com$)|'
'((https?://)?[0-9a-z]+-dot-datalab-vm[\-0-9a-z]*.googleusercontent.com)')
c.NotebookApp.allow_remote_access = True
c.NotebookApp.disable_check_xsrf = False
c.NotebookApp.notebook_dir = '/home'

这会禁用基于笔记本 token 的身份验证(身份验证通过代理上的 oauth 登录来处理),并允许来自三个来源的跨源请求:Cloud Shell web 预览、colab(请参阅此博客文章)和 Cloud Notebooks 服务代理人。笔记本服务只需要三分之一;前两个支持备用访问模式。

关于google-cloud-platform - 使用自定义 docker 镜像启动 Google Cloud AI Platform Notebooks 的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57322838/

相关文章:

google-app-engine - 如何确保应用引擎应用仅可用于 Google Cloud Task?

google-cloud-platform - GCP 上 f1-micro 的 CPU 使用率是多少?

python - 如何在本地从 GAE 和 'GCE' 访问数据时将数据存储在 GCS 中

java - 将 xml 文件上传到 Google Cloud Storage 时出现错误

google-app-engine - Google App Engine 错误 : <gcloud. app.deploy> INVALID_ARGUMENT : The following quotas were exceeded:BACKEND_SERVICES (quota: 5, 使用:5 + 需要 1)

python - 创建脚本以检索上传到 Google Cloud 存储桶的图像

docker - GCloud:使用 docker 容器和 GPU 创建实例模板

google-cloud-platform - 有没有办法在不轮询 REST API 的情况下通知 Google AI Platform 训练作业的状态变化?

Gcloud ai-platform,无法创建具有自己的预测类的模型

python - 写入 Google Cloud ML 中的文件