Google 计算引擎 VM 实例上的 Docker 应用程序的端口访问错误

Google 计算引擎 VM 实例上的 Docker 应用程序的端口访问错误

我正在尝试在 Google Compute Engine (GCP) 上的 VM 实例中部署 Web 应用程序。我通过 ssh 连接到实例并部署了 docker-compose 编排应用程序。它运行两个 docker 容器,如下所示。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               
6824c19fad9b        wordpress:latest    "docker-entrypoint.s…"   3 hours ago         Up 22 seconds       0.0.0.0:8065->80/tcp   
3079c9872e3d        mysql:5.7           "docker-entrypoint.s…"   3 hours ago         Up 3 hours          3306/tcp

根据我以前的经验,我将主机实例的端口 8065 映射到 wordpress 容器的端口80(在我的本地机器和其他一些机器上运行良好)所以正如你在上文中看到的,我认为 docker 已经正确完成了映射。

为了从实例测试设置,当我运行curl http://localhost:8065
终端响应时curl: (52) Empty reply from server

由于我无法使内部映射工作,因此从外部进行映射也是无用的。但是我已经制作了新的入口出口 防火墙规则启用TCP:8065例如。然而还是没有运气。

我知道 GCP 建议使用他们的 Kubernates Engine 来部署容器化应用。但是切换到该选项并不是我期望的解决方案。我只是想确定出了什么问题以及如何使当前设置在同一个平台上工作。

答案1

这是 Wordpress 和 DB Docker 设置的问题;apache2 无法在 docker 容器内启动。

为了调试该问题,我运行了不带 -d 的 docker-compose up,因此它反映了大多数问题。

答案2

您应该“允许 HTTP 流量”和“允许 HTTPS 流量”。

转到您的 VM 实例,编辑实例并选中“允许 HTTP 流量”和“允许 HTTPS 流量”框。它将外部 VM 流量映射到它,而 docker 将在内部处理它。

相关内容