Контейнер LXC как VPS

Я изучал контейнеры LXC, и мне было интересно, возможно ли использовать контейнер LXC как обычный VPS?

Я имею в виду;

  1. Как назначить внешний IP-адрес контейнеру LXC?
  2. Как мне напрямую подключиться к контейнеру LXC?

Я довольно плохо знаком с контейнерами LXC, поэтому, пожалуйста, дайте мне знать, если есть какие-то другие различия, о которых я должен знать.

2 ответа

Решение
lxc-create -t download -n cn_name
lxc-start -n cn_name -d
lxc-attach -n cn_name

затем в контейнере cn_name установите сервер openssh, чтобы вы могли использовать ssh, затем перезагрузите его или перезапустите службу ssh.

Чтобы сделать любые "службы" контейнера доступными для всего мира, настройте переадресацию портов с хоста на контейнер.

Например, если в контейнере был веб-сервер, для переадресации порта 80 с хоста ip 192.168.1.1 на контейнер с ip 10.0.3.1 вы можете использовать приведенное ниже правило iptables.

iptables -t nat -I PREROUTING -i eth0 -p TCP -d 191.168.1.1/32 --dport 80 -j DNAT --to-destination 10.0.3.1:80

Теперь веб-сервер на порту 80 контейнера будет доступен через порт 80 хост-системы.

Звучит так, будто вы хотите соединить сетевой адаптер хоста с контейнером. В этом случае первое, что вам нужно сделать, это создать мост. Сделайте это, сначала убедившись, что bridge-utils установлен в системе, затем откройте / etc / network / interfaces для редактирования и измените это:

auto eth0
iface eth0 inet dhcp

к этому:

auto br0
iface br0 inet dhcp
    bridge-interfaces eth0
    bridge-ports eth0
    up ifconfig eth0 up

iface eth0 inet manual

Если ваш NIC не назван eth0, вы должны заменить eth0 на любой, который называется вашим NIC (мой называется enp5s0). После внесения изменений вы можете запустить мост, выполнив команду

sudo ifup br0

Предполагая, что все прошло хорошо, вы должны поддерживать доступ в Интернет, и даже ваш ssh-сеанс должен оставаться онлайн во время процесса. Я рекомендую, чтобы у вас был физический доступ к хосту, потому что неправильное выполнение описанных выше шагов может заблокировать доступ хоста к Интернету. Вы можете проверить правильность настроек, запустив ifconfig и проверив, что br0 имеет назначенный IP-адрес, а eth0 - нет.

После того, как все это настроено, откройте /etc/lxc/default.conf и измените

lxc.network.link = lxcbr0

в

lxc.network.link = br0

И это все. Любые контейнеры, которые вы запускаете, автоматически соединяются с eth0 и будут эффективно существовать в той же локальной сети, что и хост. На этом этапе вы можете установить ssh, если это еще не сделано, и ssh в контейнер, используя его недавно назначенный IP-адрес.

"Преобразование eth0 в br0 и получение всех ваших LXC или LXD в вашей локальной сети"

Другие вопросы по тегам