我有两个码头集装箱:
- 数据库
- 使用数据库的应用程序
我像这样运行我的数据库容器:
docker run --name my-db -p 127.0.0.1:3306:3306 my-db-image
我的应用容器是这样的:
docker run --name my-app --network host -it my-app-image
这在 Linux 上运行良好。我可以从主机系统和应用程序容器访问数据库。完美的。
但是--network host
不适用于 Mac 和 Windows:
主机网络驱动程序仅适用于 Linux 主机,不支持 Docker for Mac、Docker for Windows 或 Docker EE for Windows Server。
(来源:https ://docs.docker.com/network/host/ )
我仍然可以127.0.0.1:3306
从主主机访问数据库,但我无法从应用程序容器访问它。
我该如何解决这个问题?如何让应用程序容器连接到数据库(并使用 继续从主主机访问数据库127.0.0.1:3306
)?
我试过使用host.docker.internal
,gateway.docker.internal
但它不起作用。
我也尝试--network my-network
在创建后使用启动两个容器my-network
,docker network create my-network
但它不起作用。
我不知道如何解决这个问题。