【问题标题】:Container Optimized OS Examples容器优化操作系统示例
【发布时间】:2019-11-06 08:53:41
【问题描述】:

我已遵循此处的所有文档:https://cloud.google.com/container-optimized-os/docs/ 尝试将使用现已弃用的 container-vm 映像的现有配置升级到使用容器优化操作系统的新配置。但没有任何效果!我无法让 Docker 容器绑定到端口 80(即 -p 80:80),而且我的 Docker 容器似乎也无法写入 /var/run/nginx.pid(是的,我在我的 Docker 容器)。我按照说明禁用了 AppArmour,并且还尝试为 nginx 创建 AppArmour 配置文件。没有任何作用!他们是否有任何使用容器优化操作系统的示例,这些操作系统不只是使用busybox图像并打印“Hello World”或睡眠!打开一个端口并写入文件系统的例子怎么样?

【问题讨论】:

  • -v 80:80 应该是 -p 80:80 .. 错字?
  • @koma 已修复,谢谢

标签: google-compute-engine google-container-os


【解决方案1】:

我刚刚在 Container Optimized OS 上安装了 Apache Guacamole,它就像一个魅力。有some constraints in place for security

根文件系统 ("/") 以只读方式挂载,其中的某些部分重新挂载为可写,如下所示:

  • /tmp、/run、/media、/mnt/disks 和 /var/lib/cloud 都已挂载 使用 tmpfs,虽然它们是可写的,但它们的内容不是 在重新启动之间保留。

  • 目录 /mnt/stateful_partition, /var 和 /home 是从有状态的磁盘分区挂载的,这意味着 这些位置可用于存储持续存在的数据 重新启动。例如 Docker 的工作目录 /var/lib/docker 是 在重新启动时保持状态。

  • 在可写位置中,只有 /var/lib/docker 和 /var/lib/cloud 被挂载为“可执行文件”(即 没有 noexec 挂载标志)。

If you need to accept HTTP (port 80) connections from any source IP 地址,在您的 Container-Optimzied OS 实例上运行以下命令:

sudo iptables -w -A INPUT -p tcp --dport 80 -j ACCEPT

一般情况下,建议您通过 cloud-init 将主机防火墙配置为 systemd 服务。

PS:Container-Optimized OS 能够自动更新。此机制可用于更新一组 Compute Engine 实例。

【讨论】:

  • 谢谢。我相信我什至无法绑定到80...我今晚去看看。
  • 我绑定到端口 80 没有问题,也就是说我正在使用 -p 80:8080 将 Docker 中的服务端口映射到端口 80。
【解决方案2】:

我无法让 Docker 容器绑定到端口 80(即 -p 80:80),而且我的 Docker 容器似乎也无法写入 /var/run/nginx.pid(是的,我是在我的 Docker 容器中使用 nginx)。

我认为您可能遇到了一些 GCE 防火墙问题。最好的方法是逐步验证/调试它:

  1. 尝试运行一个非常简单的 nginx 容器: “-d”要求 Docker 以守护程序模式运行,“-p 80:80”映射 HTTP 端口,“--name nginx-hello”将容器名称映射到 nginx-hello。

    docker run -d --name nginx-hello -p 80:80 nginx
    
  2. (可选)验证容器是否正常运行:您应该会看到列出的“nginx-hello”容器。

    docker ps
    
  3. 验证 nginx 是否在本地工作:您应该会看到良好的 HTTP 响应。

    curl localhost:80
    

如果您能够正确验证上述所有步骤,那么您可能会遇到 GCE 防火墙问题:

How do I enable http traffic for GCE instance templates?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多