在 Ubuntu 16.04 服务器版本上,启动 LXC 容器后,只能通过其 IP 地址引用它。在 dnsmasq 中启用 .lxc 域似乎没有帮助,并且可用的教程似乎仅适用于 Ubuntu 14.04。
无法在主机上使用 DNS 名称会带来很大的不便。
我从博客文章中了解到 LXD 2.9 解决了一些 DNS 问题,但似乎不清楚如何通过 PPA 安装。
重现步骤
按照指示https://gauvain.pocentek.net/name-resolution-lxc-containers.html
- 已安装
dnsmasq
- 取消
LXC_DOMAIN="lxc"
注释/etc/default/lxc-net
- 添加
server=/lxc/10.0.3.1
到/etc/dnsmasq.d/lxc
- 检查
/etc/resolv.conf
包含 DNS 服务器 10.0.3.1
经sudo lsof -i :53
我检查lxd
,dnsmasq
似乎lxc-dnsmasq
绑定到端口 53。
但是, - 查询dig mycontainer.lxc
没有结果。 - 查询dig @10.0.3.1 mycontainer.lxc
没有结果。 - 查询dig @10.0.3.1 google.com
产生了正确的结果。
答案1
您是否尝试过链接源中提供的完整示例配置?请注意,仅取消注释LXC_DOMAIN="lxc"
是行不通的。
此外,lxc dnsmasq 使用的规则应该在其 DHCP 配置文件中定义,通常在/etc/default/lxc-net
配置文件中定义为: LXC_DHCP_CONFILE=/etc/lxc/dnsmasq.conf
。这意味着 如果该文件不是配置的 LXC_DHCP_CONFILE,则添加到不会产生任何影响server=/lxc/10.0.3.1
。/etc/dnsmasq.d/lxc