问题标签 [google-container-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.

0 投票
3 回答
788 浏览

google-cloud-platform - 使用 Container-Optimized OS 在 GCP 实例组上自动更新/拉取 docker 映像

我有一个在 GCP 上运行的实例,该实例使用 GCR 上托管的单个映像在Container-Optimized OS中运行。

我想将新图像拉到 GCP,并使用该新图像刷新实例图像。我正在构建和推送 GitHub Actions,并且可以gcloud在 CI 工作流程中调用一些命令。

我想说“嘿实例组,请再次拉动容器图像”。这样做会很好地保持服务运行。

最好的方法应该是什么?什么完整gcloud的命令来做到这一点?

0 投票
1 回答
174 浏览

node.js - Hyperledger 1.4.6:Node.js 链码实例化失败,并显示 1“cp: cannot stat '/chaincode/input/src/.': No such file or directory

我正在尝试使用结构工具实例化代码。对等点在 Google Cloud 中的容器优化操作系统上运行。安装工程(抱歉,有些参数可能不是必需的):

实例化失败:

我的 CLI docker-compose 文件看起来像这样(/var/run 的东西看起来很奇怪,因为我试图让它在系统部分不可变的 Google COS 上工作):

这是 orderer 日志的样子:

可能是什么问题呢?例如,这个文件夹 /chaincode/input/src/ 在哪里。不见了?在主机系统上?但是因为根目录是不可变的,所以我不能在那里创建 /chaincode。

0 投票
1 回答
541 浏览

google-cloud-platform - 在 Google Cloud VM 中将 GPU 与容器和容器优化操作系统一起使用

我想在 Google Compute Engine 上使用 GPU 运行自定义 Docker 映像。我已构建映像并将其推送到 Google Container Registry。将 Container-Optimized OS 用于 Google Cloud Engine 中的主机似乎是合乎逻辑的,因为除了 Docker、Nvidia GPU 驱动程序和nvidia-container-runtime.

我设法用这个解决方案安装了 nvidia-drivers 。

--gpu all但是如果没有 nvidia-container 运行时,我无法使用 GPU(使用选项)运行我的 Docker 映像。此步骤在官方 Docker 文档中指定

有没有办法在 Google Cloud VM 的 Container-Optimized OS 上安装 nvidia-container-runtime?

0 投票
1 回答
234 浏览

docker - 增加 docker 在 Container Optimized OS 中可以访问的磁盘大小

我正在尝试运行一个简单的每日批处理脚本,该脚本可以运行几个小时,之后它将发送它生成的数据并关闭实例。为此,我将以下内容放入user-data

我正在使用 python 脚本创建实例来生成 API 的配置,如下所示:

但是,我的 docker 引擎内的磁盘空间不足。

关于如何增加可用于 docker 服务的卷大小的任何想法?

0 投票
1 回答
606 浏览

docker - COS:如何重启有新镜像的容器?

我在 Compute Engine 上使用 Google Container OS,并且我使用 Web UI 来启动单个容器。

推送新图像后,如何使用相同的环境和标志重新启动容器?

我可以通过 SSH 连接到机器并拉取新图像,但是当我docker restart使用旧图像时。

如果我只是重新运行新图像,我会丢失环境和标志。

如何在不重新启动的情况下使用 Web 控制台中提供的 env 和标志运行新映像?

谢谢

0 投票
0 回答
70 浏览

docker - 我可以将 Google Container Optimized OS 用作安全的容器沙箱吗?

我有一个运行 Googles Container Optimized OS 的 VM,我想允许运行用户提供的代码 - 每个用户都有自己的容器。

这段代码可能是恶意的——我想将代码的范围限制在它自己的容器中。

https://cloud.google.com/container-optimized-os/docs/concepts/security

问题

A. 操作系统是否为容器添加了足够的保护以用作沙盒?该文档提到增加了安全性,但没有提及它在容器中包含恶意代码的有效性。

B. 可以使用 docker 卷来限制在容器中运行的代码的文件系统范围吗?我想使用 CLI 提供的 docker volume 为每个用户在磁盘上提供一个他们可以写入的文件夹,但我想阻止用户读取彼此的数据。

非常感谢任何帮助,谢谢。

0 投票
1 回答
1052 浏览

google-container-os - 如何更改 JSON 日志的日志记录选项

当我们使用 COS 在 Compute Engine 上运行容器时,它会将其日志写入 JSON 文件。我们发现一个错误:

我正在寻找更改 Docker 的日志记录设置,并找到了这篇关于更改日志记录驱动程序设置的文章:

https://docs.docker.com/config/containers/logging/json-file/

我的困惑是我不知道如何通过控制台或 gcloud 设置参数以设置log-opts.

0 投票
2 回答
653 浏览

google-container-os - Google Container Optimized OS 如何处理计划关闭?

我在 Google Cloud 上使用 Container Optimized OS 并发现“自动更新”功能在系统重新启动之前不会应用更新,并且不提供任何在应用更新后安排重新启动的功能。

我正在编写一个简单的启动脚本,该脚本在需要重新启动时安排关机,本质上是:

我的问题是:如何确定是否已安排关机?到目前为止,我已经尝试了三种在此操作系统中不起作用的方法:

  1. $ ps -ef | grep shutdown- 没有关机过程
  2. $ systemctl status systemd-shutdownd.service-Unit systemd-shutdownd.service could not be found.
  3. cat /run/systemd/shutdown/scheduled- 没有找到文件

该操作系统及其所基于的文档很少。什么决定了如何安排关机,COS 如何处理它?

0 投票
2 回答
282 浏览

google-cloud-platform - 将文件从 GCP 存储桶复制到 Container-Optimized OS

如何在实例启动时将文件从 GCP 存储桶下载到容器优化操作系统 (COS)?


我知道以下解决方案:

然而,所有这些都必须在实例启动后手动和外部完成。

还有cloud init,但我找不到有关如何从存储桶复制文件的任何信息。示例似乎表明最好将文件内容直接包含在云初始化文件中,因为安全性,这不是我想做的事情。是否可以使用 cloud init 从 Storge 存储桶下载文件?

我考虑过使用启动脚本gcloud,但 COS 缺少 CLI 工具,例如gsutil无法在启动脚本中运行任何此类命令。

我知道我可以手动复制文件,然后将映像保存为启动盘,但我希望有一些解决方案可以避免这样做。

最重要的是,我假设我不是在要求不可能的事情,因为 COS 实例设置允许我指定可以挂载到起始容器上的 Docker 卷。这似乎表明,当 COS 尝试在启动时运行我的映像时,我应该能够在实例上拥有一些私有文件。但是怎么做?

gcp_volume_mount


尝试使用 cloud-sdk 映像执行启动脚本并按照 Guillaume 的建议将文件复制到那里并没有为我工作一段时间,显示此日志。最终我意识到cloud-sdk图像在未压缩时为 2.41GB,需要 2 多分钟才能完成拉取。我再次尝试了一个空的 COS 实例,启动脚本成功完成,从存储桶下载数据。

然而,一个 2.41GB 的图像和超过 2 分钟的启动时间听起来有点像下载一个 2KB 的文件。不是吗?

我很高兴看到我的问题的有效解决方案(感谢纪尧姆!)尽管我仍然想知道:没有更好的方法来做到这一点吗?我觉得这种方法比手动把文件放到COS实例上,然后创建一个机器映像以备将来使用更不整洁。

0 投票
0 回答
153 浏览

docker - 在 Google Cloud 上使用 Docker Compose 进行 CI/CD

我正在 Buddy 中构建一个管道,其中应用程序是基于命令构建的。需要部署时,会构建新容器并将其推送到 DockerHub。我正在使用 Google 的 Container Optimized OS 来运行 Docker Compose,这种方式。但是我找不到在运行实例上的 Contianer Optimized OS 中自动刷新和从 DockerHub 中提取最新容器的方法。

知道如何实现吗?