Пусть dnsmasq сделает это за вас.
Сконфигурируйте экземпляр dnsmasq вашего хост-компьютера для запроса экземпляра dnsmasq lxc для домена верхнего уровня .lxc.
В / etc / default / lxc-net раскомментируйте эту строку:
LXC_DOMAIN="lxc"
Если экземпляр dnsmasq вашего хоста запущен NetworkManager (как в случае с большинством текущих установок рабочего стола Ubuntu), создайте файл /etc/NetworkManager/dnsmasq.d/lxc.conf со следующей строкой внутри:
server=/lxc/10.0.3.1
Если dnsmasq вашего хоста запускается не NetworkManager, добавьте эту строку в /etc/dnsmasq.d-available/lxc вместо этого:
server=/lxc/10.0.3.1
Затем перезапустите все, чтобы они приняли изменения:
service lxc-net stop
service lxc-net start
service network-manager restart
Возможно, вам придется перезапустить ваши контейнеры lxc или заставить их запрашивать новые аренды DHCP, прежде чем они появятся в DNS. (Я не помню, было ли это необходимо, когда я это сделал.) Стоит также упомянуть, что я видел сообщение об ошибке о том, что lxc-net не воспринимает изменения dnsmasq при перезапуске, поэтому вы можете просто перезагрузить хост-систему чтобы быть уверенным.
Тогда попробуйте это:
$ 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:~$