Я настраиваю LXC, используя:
lxc-create -t ubuntu -n lxcguest1
Но я не могу получить доступ к каким-либо службам, запущенным на нем, из моей локальной сети, кажется, что это NAT. Как мне настроить его так, чтобы я мог получить к нему доступ (вероятно, ему нужно получить адрес dhcp от моего маршрутизатора Linksys)?
Спасибо.
Я только что сам разбирался с этой проблемой. В основном вам нужно настроить мост и привязать к нему сетевую карту и контейнер. Вот статья, которой я следил:
http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/
Звуки как будто вам, как и мне, требуется «мостовое» решение, а не решение NAT.
Я также отключил настройку моста LXC по умолчанию (с NAT). Для этого просто отредактируйте файл: / etc / default / lxc
и измените USE_LXC_BRIDGE = "TRUE"
на USE_LXC_BRIDGE = "FALSE"
и перезагрузитесь. [11774774] ]
Моя установка на хостах Ubuntu 14.04.1 LTS (Trusty Tahr)
Добавить в / etc / network / interfaces
на хосте
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 0.0.0.0
auto br0
iface br0 inet dhcp
bridge_ports eth0
(перезагрузка после изменений)
И в файлах конфигурации контейнера ( / var / lib / lxc / containername / config
) я установил lxc.network.link = br0
Таким образом, контейнер будет получать общедоступные IP-адреса с DHCP-сервера точно так же, как и хост.
Я использовал настройки Ubuntu LXC по умолчанию и настроил свой маршрутизатор на отправку всего трафика с 10.0.3.xxx на машину Ubuntu. На маршрутизаторе с поддержкой DD-WRT настройки выглядят примерно так, как на снимке экрана ниже. Замените 192.168.1.137
IP-адресом машины, на которой запущен LXC. Другие маршрутизаторы должны иметь аналогичные параметры для настройки статического маршрута (например, инструкции статического маршрута для Linksys ).
Это не имеет отношения, но я также использовал службу DNSMasq, чтобы указать имя хоста на IP-адрес контейнера LXC. Таким образом, я могу получить доступ к контейнеру по адресу http: // gitlab /
где угодно в сети. На мой взгляд, намного проще использовать имя хоста для доступа к контейнеру, чем запоминать IP-адрес.