Внимание! Актуальная версия руководства по установке Calculate в LXC Container доступна в Wiki »
Calculate Linux пополнился ещё одним дистрибутивом Calculate Linux Container (CLC), собранным специально для установки в контейнере LXC/LXD.
Прежде чем приступить к установке, выполните обновление пакетов:
cl-update
Ниже представлен пример поднятия контейнера LXC на примере настройки OpenRC с работающим DHCP сервером в локальной сети.
Установка пакетов
Для работы с LXC контейнерами вам понадобится установить пакет app-emulation/lxc
:
emerge app-emulation/lxc
Установка системы в контейнер
Для установки Calculate Linux Container выполните:
lxc-create -n calculate -t download -- --server mirror.calculate-linux.org --no-validate
Где:
-
-n
- имя, которое вы присвоите контейнеру -
-t
- сценарий инициализации -
--server
- зеркало (список доступных зеркал) -
--no-validate
- не проверять gpg подпись
Сценарий загрузки отобразит доступные образы и попросит указать дистрибутив “CLC” (большими буквами), релиз и архитектуру.
Программа сама загрузит контейнер с зеркала и выполнит его установку. Установленные контейнеры находятся в директории /var/calculate/lxc
.
Настройка сети
Для настройки сети в контейнере LXC понадобится настроить сетевой мост. Пример настройки OpenRC в файле /etc/conf.d/net
:
config_eth0="null"
bridge_br0="eth0"
config_br0="dhcp"
bridge_forward_delay_br0=0
bridge_hello_time_br0=1000
bridge_stp_state_br0=0
Понадобится так же удалить символическую ссылку /etc/init.d/net.eth0
и создать /etc/init.d/net.br0
:
/etc/init.d/net.eth0 stop
rm -f /etc/init.d/net.eth0
ln -s /etc/init.d/net.lo /etc/init.d/net.br0
/etc/init.d/net.br0 start
Далее выполните настройки сети установленного контейнера в файле /var/calculate/lxc/calculate/config
:
# тип сети, veth если используется bridge
lxc.network.type = veth
# поднимать сетевой интерфейс при запуске системы
lxc.network.flags = up
# интерфейс внутри контейнера
lxc.network.name = eth0
# мост, через который будет работать виртуальный интерфейс
lxc.network.link = br0
# имя сетевого адаптера для этого контейнера на хостовой машине
lxc.network.veth.pair = veth-calculate
# произвольный MAC адрес сетевого интерфейса контейнера (первое число должно быть чётным)
lxc.network.hwaddr = 02:03:04:05:06:07
Запуск контейнера
Запустить контейнер вы можете командой:
lxc-start -n calculate
Зайти в консоль контейнера:
lxc-attach -n calculate
После этого в контейнере можно поднять сеть:
/etc/init.d/net.eth0 start
rc-update add net.eth0 default
Выйти можно набрав ‘exit’ или Ctrl+d.
Добавление запуска контейнера в автозагрузку:
ln -sf /etc/init.d/lxc /etc/init.d/lxc.calculate
rc-update add lxc.calculate default
Монтирование ресурсов в контейнер
Обратите внимание, что путь в системе контейнера должен существовать.
Для монтирования /home отредактируйте файл настройки контейнера /var/calculate/lxc/calculate/config
добавив строчку:
lxc.mount.entry = /home home none rw,bind 0.0