【问题标题】:can't connect to postgres in ipv6 using docker无法使用 docker 连接到 ipv6 中的 postgres
【发布时间】: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


【解决方案1】:

在你的 netplan 配置中,尝试添加:

接受-ra:不

示例:

network:
  version: 2
  ethernets:
    ens192:
      accept-ra: no
      addresses: ...

【讨论】:

  • 谢谢,解决了。显然我的适配器从我的 RA 获得了另一个 ipv6,但奇怪的是问题只发生在 docker 容器内或使用 putty (ssh)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
  • 2022-01-27
  • 1970-01-01
  • 2018-08-10
  • 2022-01-25
相关资源
最近更新 更多