我正在尝试从docker容器连接到本地postgres数据库(在osx中运行)。我正在为mac运行docker。我已经尝试使用--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
答案 0 :(得分:2)
好的@warmoverflow的评论引导我朝着正确的方向前进。以下是我必须要做的事情。
最初我使用了错误的ip for --add-host。我不得不使用以下内容。
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