我正在尝试在容器中运行Postgres。
当我使用以下命令启动容器时,其中我将机器的端口5432映射到容器的端口,Postgres接受来自另一个进程的连接,一切都按预期工作。
docker run --name postgres --rm -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 -d postgres
端口的netstat
也工作良好,即
nc -z localhost 5432
Connection to localhost port 5432 [tcp/postgresql] succeeded!
现在,如果我使用主机模式来运行postgres容器,它将停止接受连接。基本上以下不起作用:
docker run --name postgres --rm -e POSTGRES_HOST_AUTH_METHOD=trust --net=host -d postgres
我在StackOverflow上看到了一个类似的问题,但它并没有解释为什么事情不起作用。以下是该问题的链接:使用网络=主机的docker postgres连接错误
任何关于第二个命令不起作用的想法都将受到赞赏。非常感谢。
我不知道mac上不支持主机网络。
中的片段https://docs.docker.com/network/host/
The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server.
另一个相关SO问题:如何告诉mac上的docker将主机网络用于所有目的?