Pozwól dnsmasq zrobić to za Ciebie.
Skonfiguruj wystąpienie dnsmasq na komputerze hosta, aby wyszukiwać wystąpienie dnsmasq w lxc dla domeny najwyższego poziomu .lxc.
W / etc / default / lxc-net, odkomentuj ten wiersz:
LXC_DOMAIN="lxc"
Jeśli instancja dnsmasq twojego hosta jest uruchamiana przez NetworkManager (jak ma to miejsce w przypadku większości aktualnych instalacji Ubuntu na komputerze), utwórz plik o nazwie /etc/NetworkManager/dnsmasq.d/lxc.conf z tą linią wewnątrz:
server=/lxc/10.0.3.1
Jeśli dnsmasq twojego hosta jest uruchamiany przez coś innego niż NetworkManager, dodaj tę linię do /etc/dnsmasq.d-available/lxc:
server=/lxc/10.0.3.1
Następnie uruchom ponownie, aby pobrać zmiany:
service lxc-net stop
service lxc-net start
service network-manager restart
Konieczne może być ponowne uruchomienie kontenerów LXC lub zmuszenie ich do zażądania nowych dzierżaw DHCP, zanim pojawią się one w DNS. (Nie pamiętam, czy było to konieczne, kiedy to zrobiłem.) Warto również wspomnieć, że widziałem raport o błędzie dotyczący tego, że lxc-net nie wykrywa zmian dnsmasq po ponownym uruchomieniu, więc możesz chcieć ponownie uruchomić system hosta po prostu być pewnym.
Następnie spróbuj:
$ 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:~$