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

Я имею в виду;

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

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

0
Francis 3 Мар 2015 в 23:04

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-й порт ОС хоста.

0
bmullan 7 Мар 2015 в 16:48

Похоже, вы хотите подключить сетевой адаптер хоста к контейнеру. В этом случае первое, что вам нужно сделать, это создать мост. Сделайте это, сначала убедившись, что в системе установлен 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

Если ваша сетевая карта не называется eth0, вы должны заменить eth0 на то, что называется вашей сетевой картой (моя называется 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 в вашу локальную сеть»

0
lpreams 13 Июл 2016 в 01:11