Lassen Sie dnsmasq das für Sie tun.
Konfigurieren Sie die dnsmasq-Instanz Ihres Hostcomputers so, dass die dnsmasq-Instanz von lxc nach der .lxc-Domäne der obersten Ebene abgefragt wird.
Kommentar in / etc / default / lxc-net entfernen:
LXC_DOMAIN="lxc"
Wenn die dnsmasq-Instanz Ihres Hosts von NetworkManager gestartet wird (wie dies bei den meisten aktuellen Ubuntu-Desktop-Installationen der Fall ist), erstellen Sie eine Datei mit dem Namen /etc/NetworkManager/dnsmasq.d/lxc.conf mit folgender Zeile:
server=/lxc/10.0.3.1
Wenn dnsmasq Ihres Hosts nicht über NetworkManager gestartet wird, fügen Sie diese Zeile stattdessen zu /etc/dnsmasq.d-available/lxc hinzu:
server=/lxc/10.0.3.1
Starten Sie dann die Dinge neu, damit sie die Änderungen übernehmen:
service lxc-net stop
service lxc-net start
service network-manager restart
Möglicherweise müssen Sie Ihre lxc-Container neu starten oder neue DHCP-Leases anfordern, bevor sie in DNS angezeigt werden. (Ich erinnere mich nicht, ob es notwendig war, als ich das getan habe.) Es ist auch erwähnenswert, dass ich einen Fehlerbericht darüber gesehen habe, dass lxc-net dnsmasq-Änderungen nicht übernommen hat, als es neu gestartet wurde um sicher zu sein.
Dann probiere es aus:
$ host mycontainer.lxc
mycontainer.lxc has address 10.0.3.21
$ ssh ubuntu@mycontainer.lxc
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-39-generic x86_64)
ubuntu@mycontainer:~$