Deixe o dnsmasq fazer isso por você.
Configure a instância dnsmasq da sua máquina host para consultar a instância dnsmasq do lxc para o domínio de nível superior .lxc.
Em / etc / default / lxc-net, descomente esta linha:
LXC_DOMAIN="lxc"
Se a instância dnsmasq do seu host for iniciada pelo NetworkManager (como é o caso com a maioria das instalações atuais da área de trabalho do Ubuntu) crie um arquivo chamado /etc/NetworkManager/dnsmasq.d/lxc.conf com esta linha dentro:
server=/lxc/10.0.3.1
Se o dnsmasq do seu host for iniciado por algo diferente de NetworkManager, adicione essa linha ao /etc/dnsmasq.d-available/lxc:
server=/lxc/10.0.3.1
Em seguida, reinicie as coisas para que elas captem as alterações:
service lxc-net stop
service lxc-net start
service network-manager restart
Você pode ter que reiniciar seus contêineres lxc ou fazê-los solicitar novas concessões de DHCP antes que eles apareçam no DNS. (Eu não lembro se foi necessário quando eu fiz isso.) Também vale a pena mencionar que eu vi um relatório de bug sobre o lxc-net não estar pegando as mudanças do dnsmasq quando foi reiniciado, então você pode querer reiniciar seu sistema host apenas para ter certeza.
Então tente:
$ host mycontainer.lxc
mycontainer.lxc has address 10.0.3.21
$ ssh [email protected]
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-39-generic x86_64)
ubuntu@mycontainer:~$