Нехай 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:~$