Google 云 - 从 GCR 部署为容器 - docker 容器中未公开的端口
Google Cloud - Deploy as Container from GCR - Ports not exposed in docker container
我创建了一个 GCP VM 实例,选项 Deploy as Container
指向我私有 GCR(nginx 自定义)中的图像。
此外,在创建实例时,我已经允许 'https' 和 'http' 流量。
虽然应用程序运行良好,但通过 ssh
连接实例并检查 docker 容器
(docker ps
)
我看到容器端口没有暴露。想知道这里的容器如何通过实例处理 http/https 请求?
当您在 GCE 中使用部署容器选项时,它会运行 docker 并访问主机网络。
来自相关 gcp docs :
Containerized VMs launch containers with the network set to host mode.
A container shares the host network stack, and all interfaces from the
host are available to the container.
关于不同网络模式的更多详细信息here。
除了@Stefan R 所说的以外,您还应该使用大于 1000 的端口号,因为自动部署的容器映像不是 运行 根用户,因此无法访问特权端口。
https://www.staldal.nu/tech/2007/10/31/why-can-only-root-listen-to-ports-below-1024/
https://www.google.co.in/search?q=privileged+ports+linux&oq=privileged+ports+linux
我创建了一个 GCP VM 实例,选项 Deploy as Container
指向我私有 GCR(nginx 自定义)中的图像。
此外,在创建实例时,我已经允许 'https' 和 'http' 流量。
虽然应用程序运行良好,但通过 ssh
连接实例并检查 docker 容器
(docker ps
)
我看到容器端口没有暴露。想知道这里的容器如何通过实例处理 http/https 请求?
当您在 GCE 中使用部署容器选项时,它会运行 docker 并访问主机网络。
来自相关 gcp docs :
Containerized VMs launch containers with the network set to host mode. A container shares the host network stack, and all interfaces from the host are available to the container.
关于不同网络模式的更多详细信息here。
除了@Stefan R 所说的以外,您还应该使用大于 1000 的端口号,因为自动部署的容器映像不是 运行 根用户,因此无法访问特权端口。
https://www.staldal.nu/tech/2007/10/31/why-can-only-root-listen-to-ports-below-1024/
https://www.google.co.in/search?q=privileged+ports+linux&oq=privileged+ports+linux