问题标签 [google-container-optimized-os]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-compute-engine - Compute Engine 部署容器
我正在使用 golang 使用Compute Engine API以编程方式创建和销毁一次性 Compute Engine 实例。
我可以很好地创建一个实例,但我真正遇到的问题是在启动时启动一个容器。
您可以从控制台 UI 执行此操作:
但据我所知,以编程方式执行此操作非常困难,尤其是使用容器优化操作系统作为基础映像时。我尝试做一个启动脚本,docker pull us-central1-docker.pkg.dev/project/repo/image:tag
但它失败了,因为你需要先做gcloud auth configure-docker us-central1-docker.pkg.dev
它才能工作,而 COOS 没有 gcloud 也没有包管理器来获取它。
我所有的解决方法似乎都很老套:
- 手动创建具有所需容器的 VM 模板并创建模板的实例
- 将容器放在外部注册表中,如 docker hub(不可接受)
- 使用带有包管理器的 Ubuntu 而不是 COOS,这样我就可以在启动时以编程方式安装 gcloud、docker 和容器
- 使用 COOS 从 dockerhub 中拉下包含 gcloud 的映像,然后执行某种 docker-in-docker mount 以将其拉下
我是否遗漏了什么,或者在不使用 gcloud 或控制台 UI 的情况下将容器部署到计算引擎实例真的很麻烦?
docker - 在 Container-Optimized OS 中保存持久性可执行文件的位置
我在 GCP 的Compute Engine上使用Container-Optimized OS。我正在将目录卷安装到我的容器中,问题是我的应用程序在该卷中创建并执行文件,但容器优化操作系统不允许在主目录中执行。那我应该把音量放在哪里?
据此,唯一合适的路径是/var/lib/[google|docker|toolbox]
,但它是保存此类文件的正确位置吗?如果我将持久的可执行文件保存在那里,我会偶然发现一些问题吗?或者也许我应该切换到不同的操作系统(例如 Ubuntu)?