Я изучал контейнеры LXC, и мне было интересно, можно ли использовать контейнер LXC как обычный VPS?
Я имею в виду;
- Как назначить внешний IP-адрес контейнеру LXC?
- Как напрямую подключиться к контейнеру LXC по ssh?
Я новичок в контейнерах 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
Если ваша сетевая карта не называется 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 в вашу локальную сеть»
Похожие вопросы
Новые вопросы
linux
ВНИМАНИЕ: Все вопросы по Linux должны быть связаны с программированием; те, которые не будут закрыты. Используйте этот тег, только если ваш вопрос касается программирования с использованием API-интерфейсов Linux или поведения, специфичного для Linux, а не только потому, что вы запускаете свой код в Linux. Если вам нужна поддержка Linux, вы можете попробовать https://unix.stackexchange.com или сайт Stack Exchange конкретного дистрибутива Linux, например https://askubuntu.com или https://elementaryos.stackexchange.com/.