2016-06-28 4 views
1

Я пытаюсь подключиться к локальной базе данных postgres (работает в osx) из контейнера докера. Я запускаю докер для Mac. Я пробовал использовать опцию --add-host, но пока не получил ее на работу. У меня отсутствует конфиг для подключения? Ниже приведен пример того, что я пытаюсь сделать.Docker container to local osx postgres

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

попытки соединения

[email protected]:/# 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? 


[email protected]:/# ping localbox 
PING localbox (192.168.59.3): 56 data bytes 
^C--- localbox ping statistics --- 
7 packets transmitted, 0 packets received, 100% packet loss 
+1

Смотрите этот Http://stackoverflow.com/questions/31249112/allow-docker-container-to-connect-to-a-local-host-postgres-database Уверены ли, что адрес ip верен для вашего хоста? –

+0

Вы правы. Мне нужно было использовать 192.168.99.1. – MikeV

ответ

2

Okay комментарий от @warmoverflow привести меня в правильном направлении. Вот что я должен был сделать, чтобы все говорило.

Первоначально я использовал неправильный ip для -add-host. Мне пришлось использовать следующее.

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

Я получил 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