如何将 lxc 容器添加到主机的 DNS 以便 getaddrinfo() 可以解析它们?

如何将 lxc 容器添加到主机的 DNS 以便 getaddrinfo() 可以解析它们?

我在 Ubuntu 12.04 上运行 LXC 容器,内核为 3.8。容器位于仅主机网络上,因此它们的地址由 dnsmasq 管理。有没有办法配置主机,以便 getaddrinfo()(在主机上)可以解析容器名称?(我知道有办法从 shell 解析容器名称,但我正在寻找可以与 getaddrinfo() 配合使用的方法)。

答案1

下列操作适用于 12.04 和 3.11 内核。在主机上,将以下内容添加到 /etc/resolvconf/resolv.conf.d/head:

nameserver 10.0.3.1

然后在主机上运行此命令来更新您的 /etc/resolv.conf:

sudo resolvconf -u

之后,从容器的 /etc/resolvconf/resolv.conf.d/original 中删除以下内容:

nameserver 127.0.0.1

然后在容器中运行此命令来更新其 /etc/resolv.conf:

sudo resolvconf -u

相关内容