根据此处的 docker 文档
https://docs.docker.com/network/host/
主机网络驱动程序仅适用于 Linux 主机,在 Docker for Mac、Docker for Windows 或 Docker EE for Windows Server 上不受支持。
在 Mac 上,人们使用哪些替代方案?
我的场景
最简单/最优雅的解决方案是什么?
最简单、最优雅的解决方案是使用docker命名的网桥网络。您可以像这样创建自定义网桥网络(默认为网桥):
docker network create my-network
Run Code Online (Sandbox Code Playgroud)
部署在该网络中的每个容器都可以使用容器名称相互通信。
$ docker run --network=my-network --name my-app ...
$ docker run --network=my-network --name my-database...
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,您可以使用my-database:port. 如果容器端口在 Dockerfile 中公开,则无需将其映射到主机上,并且可以将所有通信保持在自定义 docker 桥接网络内部。
在大多数情况下,应用程序的端口被映射(例如:),-p 80:80因此localhost:80被映射container:80,您可以从本地主机访问应用程序。如果应用程序需要与 db 通信,则不需要公开 db 的端口,也不必将其映射到 localhost 上,如上所述。只需将应用程序和数据库之间的通信保持在您的自定义桥接网络内部即可。
| 归档时间: |
|
| 查看次数: |
9924 次 |
| 最近记录: |