LXC (Linux Containers) - это технология виртуализации на уровне операционной системы, которая позволяет запускать несколько изолированных экземпляров Linux на одном узле (хосте) без необходимости в дополнительном ядре. LXC использует функции ядра Linux, такие как cgroups и namespaces, для обеспечения изоляции и управления ресурсами. Каждый контейнер работает в своем собственном пространстве имен и имеет отдельный доступ к ресурсам, таким как сеть, процессор и память.
Различия между LXC и OpenVZ и выбор между ними зависят от специфических потребностей и предпочтений. OpenVZ является еще одной системой виртуализации на уровне операционной системы, но с некоторыми отличиями от LXC:
Выбор технологии:
Запустим контейнер LXC в Ubuntu 22.
apt install lxc lxc-templates
Настройка сети для LXC. LXC поддерживает различные типы сетевых конфигураций, но по умолчанию использует сеть моста. Вы можете настроить сеть в соответствии с вашими требованиями. DCHP сети для контейнеров прописаны в файле /etc/default/lxc-net
USE_LXC_BRIDGE="true" LXC_BRIDGE="lxcbr0" LXC_ADDR="10.0.3.1" LXC_NETMASK="255.255.255.0" LXC_NETWORK="10.0.3.0/24" LXC_DHCP_RANGE="10.0.3.2,10.0.3.254" LXC_DHCP_MAX="253"
1. Создайте новый контейнер: Пример создания контейнера с Ubuntu:
sudo lxc-create -n <имя_контейнера> -t ubuntu
Замените <имя_контейнера> на желаемое имя для вашего контейнера.
2. Запустите контейнер:
sudo lxc-start -n <имя_контейнера>
sudo lxc-attach -n <имя_контейнера>
sudo lxc-stop -n <имя_контейнера>
sudo lxc-destroy -n <имя_контейнера>
sudo lxc-ls --fancy
lxc-info -n <имя_контейнера> lxc-info test1 Name: test1 State: RUNNING PID: 29832 Link: veth1sJuWF TX bytes: 3.28 KiB RX bytes: 1.69 KiB Total bytes: 4.97 KiB
Эти шаги предоставляют основные команды для работы с LXC. Обратите внимание, что в зависимости от вашей конфигурации и версии Linux некоторые шаги могут немного отличаться.
lxc-create -n test1 -t ubuntu lxc-start -n test1 lxc-ls --fancy NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED test1 RUNNING 0 - - - false
Подключимся к контейнеру и настроим статическую сеть, выбрав ip из /etc/default/lxc-net
root@z:/etc/network# lxc-attach -n test1 root@test1:/# vi /etc/netplan/10-lxc.yaml