【发布时间】:2020-12-10 01:13:17
【问题描述】:
我的场景如下:我在 ubuntu 20.04 服务器上安装了一个 postgres 12,并在另一个启用了 ipv6 的主机上运行了一个 docker 容器。
我无法使用 ipv6 从 docker 容器内部访问 postgres 服务器。
这些命令在容器内工作:
$ ping POSTGRES_SERVER_IPv4
$ ping POSTGRES_SERVER_IPv6
$ telnet POSTGRES_SERVER_IPv4 5432
但这在容器内部不起作用(但它在 docker 主机中起作用):
$ telnet POSTGRES_SERVER_IPv6 5432
我已经在 postgres pg_hba.conf 中设置了 listen_address = '*' 和 "host all all md5"。
编辑:
我意识到我的网络适配器正在使用两个 IPv6,一个是我在 netplan 中定义的静态,另一个在我的网络范围内,但我没有分配它。
【问题讨论】:
-
你能从另一台(非 docker)机器访问 postgres 服务器吗?
-
"在您可以在 Docker 容器或 swarm 服务中使用 IPv6 之前,您需要在 Docker 守护进程中启用 IPv6 支持。" ...docs.docker.com/config/daemon/ipv6
-
是的,我可以@Turing85。
-
它已经启用@MarcSances。
标签: postgresql docker networking ubuntu-20.04 netplan