У меня есть новый Debian 9 с Docker 18.09 (установлен из официального репозитория Docker) и Postgres 9.6.Я отредактировал /etc/postgresql/9.6/main/postgresql.conf
, чтобы установить параметр listen_addresses
:
listen_addresses = '127.0.0.1,172.17.0.1'
После внесения этого изменения и перезапуска Postgres мои контейнеры Docker могут без проблем подключаться к Postgres на 172.17.0.1.Проблема возникает, когда я перезагружаю всю ОС, Postgres не будет слушать 172.17.0.1, пока я сам не перезапущу Postgres.Я поменял порядок адресов в postgresql.conf
безрезультатно, запустив show listen_addresses;
в psql
, говорит, что прослушивает оба указанных мной порта, но sudo netstat -na
показывает, что прослушиваеттолько в 127.0.0.1:
$ sudo netstat -na
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Перезапуск Postgres (systemctl restart postgres
), и теперь он также прослушивает 172.17.0.1:
$ sudo netstat -na
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 172.17.0.1:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Это означает, что мои Docker контейнерыпри запуске, которые подключаются к Postgres, они не запускаются автоматически, поскольку получают ошибку «Отказано в соединении».