运行 主机模式下 Postgres 容器不接受连接
Postgres container does not accept connections when run host mode
我正在尝试 运行 容器中的 Postgres。
当我使用以下命令启动容器时,我将我机器的端口 5432 映射到容器的端口,Postgres 接受来自另一个进程的连接并且一切正常。
docker run --name postgres --rm -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 -d postgres
netstat
-ing 端口也很好,即
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
我在 Whosebug 上看到了一个类似的问题,但它没有解释为什么事情不起作用。这是该问题的 link:
Connection Error with docker postgres using network=host
对于为什么第二个命令不起作用的任何想法表示赞赏。谢谢。
我不知道 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.
另一个相关的问题:
我正在尝试 运行 容器中的 Postgres。
当我使用以下命令启动容器时,我将我机器的端口 5432 映射到容器的端口,Postgres 接受来自另一个进程的连接并且一切正常。
docker run --name postgres --rm -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 -d postgres
netstat
-ing 端口也很好,即
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
我在 Whosebug 上看到了一个类似的问题,但它没有解释为什么事情不起作用。这是该问题的 link: Connection Error with docker postgres using network=host
对于为什么第二个命令不起作用的任何想法表示赞赏。谢谢。
我不知道 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.
另一个相关的问题: