Docker 容器到本地 osx postgres

Docker container to local osx postgres

我正在尝试从 docker 容器连接到本地 postgres 数据库(osx 中的 运行)。我是 运行 docker 代表 mac。我试过使用 --add-host 选项,但还没有让它工作。我是否缺少建立连接的配置?下面是我正在尝试的示例。

docker run --add-host=localbox:192.168.59.3 -it postgres /bin/bash

连接尝试

root@1893226613e9:/# psql -h localbox -U test_user
psql: could not connect to server: Connection timed out
    Is the server running on host "localbox" (192.168.59.3) and accepting
    TCP/IP connections on port 5432?


root@1893226613e9:/# ping localbox 
PING localbox (192.168.59.3): 56 data bytes 
^C--- localbox ping statistics --- 
7 packets transmitted, 0 packets received, 100% packet loss

好的,@warmoverflow 的评论让我朝着正确的方向前进。这是我必须做的才能让一切都在说话。

最初我为 --add-host 使用了错误的 ip。我不得不使用以下内容。

docker run --add-host=localbox:192.168.99.1 -it postgres /bin/bash

我通过查找 virtualbox 使用的地址得到了 192.168.99.1。

$ ifconfig
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        ether 0a:00:27:00:00:00
        inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

这使 ping 正常工作,但随后我收到快速连接被拒绝的消息。

psql: could not connect to server: Connection refused
    Is the server running on host "192.168.99.1" and accepting
    TCP/IP connections on port 5432?

然后我不得不启用 postgres 来接受远程连接。我通过添加到下面的配置来做到这一点。

/usr/local/var/postgres/postgresql.conf

listen_addresses = '*'

/usr/local/var/postgres/pg_hba.conf

host    all             all             192.168.99.100/32       trust