内容纲要
有几种方法可以实现这个功能¹²³:
- 使用host网络模式启动容器,这样容器的网络栈就不会与宿主机隔离,而是共享宿主机的网络命名空间,容器也不会分配自己的IP地址。例如,如果您运行一个绑定到80端口的容器,并使用host网络模式,那么容器的应用程序就可以在宿主机的IP地址上的80端口上访问。命令如下:
docker run --network host ...
- 在宿主机上为网络接口添加一个IP别名,然后在容器中使用这个别名来访问宿主机。您可以绑定任何您想要的IP,只要确保您没有用它做其他事情。例如,在MacOS上,您可以使用以下命令:
sudo ifconfig lo0 alias 123.123.123.123/24
然后在容器中使用123.123.123.123
来访问宿主机。 - 在MacOS上,您可以使用特殊的DNS名称
host.docker.internal
来访问宿主机。例如,如果您在宿主机上运行一个web服务器,在Docker容器中可以通过连接到host.docker.internal:80
来访问它。
希望这些信息对您有所帮助。😊
源: 与必应的对话, 3/18/2023(1) How to access host port from docker container – Stack Overflow. https://stackoverflow.com/questions/31324981/how-to-access-host-port-from-docker-container 访问时间 3/18/2023.
(2) Use host networking – Docker Documentation. https://docs.docker.com/network/host/ 访问时间 3/18/2023.
(3) Docker access localhost port from container – Stack Overflow. https://stackoverflow.com/questions/46973456/docker-access-localhost-port-from-container 访问时间 3/18/2023.
mac在docker中访问宿主机的端口