Thank you for reading this post, don't forget to subscribe!
Команды для установки контейнеров LXC
Установка контейнера LXC Centos 7:
1 |
lxc-create -t download -n test-centos -- --dist centos --release 7 --arch amd64 |
Установка контейнера LXC Ubuntu 18.04:
1 |
lxc-create -t download -n test-ubuntu -- --dist ubuntu --release bionic --arch amd64 |
Установка контейнера LXC Debian Jessie:
1 |
lxc-create -t download -n test-debian -- --dist debian --release jessie --arch amd64 |
Установка контейнера Alpine Linux 3.10:
1 |
lxc-create -t download -n test-alpine -- --dist alpine --release 3.10 --arch amd64 |
Команды для работы с контейнерами
Чтобы запустить контейнер выполните:
1 |
lxc-start название контейнера |
Чтобы остановить контейнер выполните:
1 |
lxc-stop название контейнера |
Чтобы подключиться к контейнеру под рутом:
1 |
lxc-attach название контейнера |
Просмотреть список контейнеров и их IP адреса
1 |
lxc-ls -f |
Отключение AppArmor в LXC
Иногда AppArmor мешает контейнеру запуститься. Тогда в конце файла настроек контейнера /var/lib/lxc/<название контейнера>/config пропишите следующую строку
1 |
lxc.apparmor.profile = unconfined |
Настройка IP адреса контейнера
В конце файла настроек контейнера /var/lib/lxc/<название контейнера>/config укажите слоедующие параметры:
1 2 3 4 5 6 7 |
# Network configuration lxc.net.0.type = veth lxc.net.0.link = lxcbr0 lxc.net.0.flags = up lxc.net.0.hwaddr = 00:16:3e:6b:aa:11 lxc.net.0.ipv4.address = 10.0.3.10/24 lxc.net.0.ipv4.gateway = 10.0.3.1 |
10.0.3.10 — Это IP адрес контейнера
10.0.3.1 — Адрес шлюза
00:16:3e:6b:aa:11 — MAC Адрес
lxcbr0 — Имя LXC bridge. Обычно ставится автоматически
Второй способ настройки IP адреса
Бывает, что первого способа не достаточно чтобы выдать IP адрес. Тогда нужно задать IP адрес в самом контейнере.
Способ для Centos и Alpine Linux:
Подключитесь к контейнеру через команду
1 |
lxc-attach название контейнера |
Откройте файл /etc/network/interfaces
Вместо iface eth0 inet dhcp Пропишите:
1 2 3 4 |
iface eth0 inet static address 10.0.3.10 netmask 255.255.255.0 gateway 10.0.3.1 |
Выйдите из контейнера командой:
1 |
exit |
Перезапустить контейнер:
1 2 |
lxc-stop название контейнера lxc-start название контейнера |
Автозапуск контейнера
Чтобы настроить автоматическое включение контейнера, укажите следующие строки:
1 2 |
lxc.start.auto = 1 lxc.start.delay = 5 # Задержка, когда будет запущен контейнер |
Настройка nested контейнера
Nested контейнер — это возможность запустить контейнер в контейнере. Например, если вам нужно будет запустить Docker внутри LXC контейнера, то нужно включить данную опцию.
Опция включается в файле конфига контейнера /var/lib/lxc/<название контейнера>/config
Раскоментируйте строчку:
1 |
#lxc.include = /usr/share/lxc/config/nesting.conf |
Также может понадобится прописать параметр для монтирования файловой системы cgroup
1 |
lxc.mount.auto = cgroup-full:rw |