#postgresql #docker #networking #ubuntu-20.04 #netplan
#postgresql #docker #сеть #ubuntu-20.04 #netplan
Вопрос:
Мой сценарий следующий: у меня установлен postgres 12 на сервере Ubuntu 20.04, а контейнер docker запущен на другом хосте с включенным ipv6.
Я не могу связаться с сервером postgres из контейнера docker, используя ipv6.
эти команды работают из контейнера:
$ ping POSTGRES_SERVER_IPv4
$ ping POSTGRES_SERVER_IPv6
$ telnet POSTGRES_SERVER_IPv4 5432
но это не работает изнутри контейнера (но это работает с хоста docker):
$ telnet POSTGRES_SERVER_IPv6 5432
я уже установил listen_address = ‘*’ и «разместить все все md5» в postgres pg_hba.conf.
Редактировать:
я понял, что мой сетевой адаптер использует два IPv6, статический, который я определил в netplan, и другой, который находится в пределах моего сетевого диапазона, но я его не назначал.
Комментарии:
1. Можете ли вы связаться с сервером postgres с другого компьютера (не с docker)?
2. «Прежде чем вы сможете использовать IPv6 в контейнерах Docker или службах swarm, вам необходимо включить поддержку IPv6 в демоне Docker.» … docs.docker.com/config/daemon/ipv6
3. Да, я могу @Turing85.
4. Это уже включено @MarcSances.
Ответ №1:
В вашей конфигурации netplan попробуйте добавить:
принять-ra: нет
пример:
network:
version: 2
ethernets:
ens192:
accept-ra: no
addresses: ...
Комментарии:
1. спасибо, это решено. по-видимому, мой адаптер получал другой ipv6 от моего RA, но любопытно, что проблема возникала только внутри контейнера docker или с использованием putty (ssh).