Google compute engine 容器优化操作系统示例

Google compute engine 容器优化操作系统示例,google-compute-engine,google-container-os,Google Compute Engine,Google Container Os,我已经阅读了这里的所有文档:尝试将使用容器vm映像的现有配置升级到使用容器优化操作系统的新配置。但什么都不管用!我无法使Docker容器绑定到端口80 ie.-p 80:80,而且我的Docker容器似乎无法写入/var/run/nginx.pid是的,我在Docker容器中使用nginx。我按照说明禁用AppArmour,并尝试为nginx创建AppArmour配置文件。什么都不管用!他们是否有使用容器优化操作系统的例子,而不仅仅是使用busybox图像和打印Hello World或sleep

我已经阅读了这里的所有文档:尝试将使用容器vm映像的现有配置升级到使用容器优化操作系统的新配置。但什么都不管用!我无法使Docker容器绑定到端口80 ie.-p 80:80,而且我的Docker容器似乎无法写入/var/run/nginx.pid是的,我在Docker容器中使用nginx。我按照说明禁用AppArmour,并尝试为nginx创建AppArmour配置文件。什么都不管用!他们是否有使用容器优化操作系统的例子,而不仅仅是使用busybox图像和打印Hello World或sleep!举个例子,打开一个端口并写入文件系统,怎么样?

我刚刚安装在容器优化的操作系统上,它工作起来很有魅力。有

根文件系统/以只读方式装入,其中某些部分以可写方式重新装入,如下所示:

/tmp、/run、/media、/mnt/磁盘和/var/lib/cloud都已装入 使用tmpfs和,虽然它们是可写的,但它们的内容不是可写的 在重新启动之间保存

目录/mnt/stateful\u分区,/var 和/主从有状态磁盘分区装入,这意味着 这些位置可用于存储跨存储的数据 重新启动。例如,Docker的工作目录/var/lib/Docker是 跨重新启动状态

在可写位置中,只有 /var/lib/docker和/var/lib/cloud作为可执行文件安装,即。 没有noexec挂载标志。 地址,在容器优化操作系统实例上运行以下命令:

sudo iptables -w -A INPUT -p tcp --dport 80 -j ACCEPT
通常,建议您通过cloud init将主机防火墙配置为systemd服务

PS:容器优化操作系统能够自动更新。这个机制可以用来更新一组计算引擎实例。

我刚刚安装在容器优化的操作系统上,它工作起来很有魅力。有

根文件系统/以只读方式装入,其中某些部分以可写方式重新装入,如下所示:

/tmp、/run、/media、/mnt/磁盘和/var/lib/cloud都已装入 使用tmpfs和,虽然它们是可写的,但它们的内容不是可写的 在重新启动之间保存

目录/mnt/stateful\u分区,/var 和/主从有状态磁盘分区装入,这意味着 这些位置可用于存储跨存储的数据 重新启动。例如,Docker的工作目录/var/lib/Docker是 跨重新启动状态

在可写位置中,只有 /var/lib/docker和/var/lib/cloud作为可执行文件安装,即。 没有noexec挂载标志。 地址,在容器优化操作系统实例上运行以下命令:

sudo iptables -w -A INPUT -p tcp --dport 80 -j ACCEPT
通常,建议您通过cloud init将主机防火墙配置为systemd服务

PS:容器优化操作系统能够自动更新。此机制可用于更新计算引擎实例组

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

我想你可能遇到了GCE防火墙问题。最好的方法是逐步验证/调试:

尝试运行一个非常简单的nginx容器: -d要求Docker在守护进程模式下运行它,-p80:80映射HTTP端口,-name nginx hello names to container映射到nginx hello

docker run -d --name nginx-hello -p 80:80 nginx
可选验证容器是否正确运行:您应该看到列出的nginx hello容器

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

curl localhost:80
如果您能够正确验证上述所有步骤,那么您可能会面临GCE防火墙问题:

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

我想你可能遇到了GCE防火墙问题。最好的方法是逐步验证/调试:

尝试运行一个非常简单的nginx容器: -d要求Docker在守护进程模式下运行它,-p80:80映射HTTP端口,-name nginx hello names to container映射到nginx hello

docker run -d --name nginx-hello -p 80:80 nginx
可选验证容器是否正确运行:您应该看到列出的nginx hello容器

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

curl localhost:80
如果您能够正确验证上述所有步骤,那么您可能会面临GCE防火墙问题:


谢谢我相信我甚至不能坚持到80岁。。。今晚我来看看。我绑定到端口80没有问题,也就是说我正在使用-p80:8080将Docker中的服务映射到端口80。谢谢。我相信我甚至不能坚持到80岁。。。今晚我来看看。我绑定到端口80没有问题,也就是说我正在使用-p80:8080将Docker中的服务映射到端口80。-v80:80应该是-p80:80。。打字错误?@koma
修正了谢谢-v 80:80应该是-p 80:80。。打字错误?@koma修正了,谢谢