【发布时间】:2023-03-22 19:09:01
【问题描述】:
我正在使用 Docker for Mac。我有两个容器。
第一个:一个 PHP 应用程序正在尝试将 localhost:3306 连接到 MySQL。
第二个:MySQL
当使用链接运行时,它们能够相互访问。
但是,我想避免更改 PHP 应用程序中的任何代码(例如,将 localhost 更改为“mysql”)并继续使用 localhost。
主机网络似乎可以解决问题,但问题是,当我启用主机网络时,我无法访问主机 mac 上端口 80 上的 PHP 应用程序。
如果我 docker exec -it 进入 php 应用程序并 curl localhost,我会看到 HTML,所以看起来端口只是没有转发到主机?
【问题讨论】:
-
你能发布你的 docker 命令吗?使用 docker run -p localport:docker-port 转发端口 - 看看docs.docker.com/engine/reference/run/#expose-incoming-ports
-
@lumos0815 我正在使用 docker compose,但对于您的示例,请尝试启用主机网络,看看您是否可以从您的主机访问该端口
标签: docker docker-compose docker-networking