Instalacja LXC
sudo apt update
sudo apt install acl lxc lxc-templatesSprawdzenie konfiguracji
LXC automatycznie sprawdzi, czy Twój system jest gotowy. Uruchom:
sudo lxc-checkconfigJeśli wszędzie widzisz enabled, system jest gotowy do pracy.
Utworzenie kontenera LXC - Samba AD
Tworzymy trzy kontenery oparte na architekturze Debian 13.
W pliku konfiguracyjnym LXC (np. /var/lib/lxc/srv-samba-ad/config) definiujemy powiązanie z mostkiem br0 oraz limity zasobów, pamiętając, aby nie wpisywać tam parametrów IP/Gateway, co prowadzi do konfliktów z menedżerem sieciowym kontenera:
lxc-create -n srv-ad -t download -- -d debian -r trixie -a amd64-n : nazwa kontenera
-t : oparty na systemie debiana (można wybrac inne dystrybucje)
powiązanie z mostkiem sieciowym
nano /var/lib/lxc/srv-ad/config# Template used to create this container: /usr/share/lxc/templates/lxc-download
# Parameters passed to the template: -d debian -r trixie -a amd64
# For additional config options, please look at lxc.container.conf(5)
# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)
# Distribution configuration
lxc.include = /usr/share/lxc/config/common.conf
lxc.arch = linux64
# Container specific configuration
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
lxc.rootfs.path = dir:/var/lib/lxc/srv-ad/rootfs
lxc.uts.name = srv-ad
# Network configuration
lxc.net.0.type = veth
lxc.net.0.link = br0
lxc.net.0.flags = up
#Losowy MAC
lxc.net.0.hwaddr = 00:16:3e:3a:7f:21
#Auto start
lxc.start.auto = 1
lxc.start.order = 1
lxc.start.delay = 5
# Limit pamięci RAM (np. 1 GB)
lxc.cgroup2.memory.max = 2G
# Limit pamięci SWAP (np. 256M)
lxc.cgroup2.memory.swap.max = 0
# Przypisanie rdzeni procesora (rdzenie 0 1)
lxc.cgroup2.cpuset.cpus = 0 1
#Montowanie katalogów domowych userów
#lxc.mount.entry = /home/LO home/LO none bind,create=dir 0 0
#dla chrony
#lxc.cap.drop =sudo lxc-start -n srv-ad
Ustawienia karty sieciowej dla kontenera
nano /var/lib/lxc/srv-ad/rootfs/etc/systemd/network/10-eth0.network
[Match]
Name=eth0
[Network]
Address=192.168.10.201/24
Gateway=192.168.10.200
DNS=1.1.1.1
DNS=8.8.8.8
lxc-stop -n srv-ad
lxc-start -n srv-ad
lxc-attach -n srv-ad -- ping -c 3 1.1.1.1Routing
ip rdefault via 192.168.10.200 dev eth0 proto static
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.201
nano /var/lib/lxc/srv-ad/rootfs/etc/resolv.confnameserver 192.168.10.200Sprawdzenie
lxc-info -n srv-ad
Name: srv-ad
State: RUNNING
PID: 7233
IP: 192.168.10.201
Link: vethkpuVac
TX bytes: 1.39 KiB
RX bytes: 0 bytes
Total bytes: 1.39 KiB
Statystyki
lxc-cgroup -n srv-ad memory.current
lxc-cgroup -n srv-ad memory.max
lxc-cgroup -n srv-ad cpuset.cpus
Utworzenie kontenera LXC - Mysql
lxc-create -n srv-mysql -t download -- -d debian -r trixie -a amd64-n : nazwa kontenera
-t : oparty na systemie debiana (można wybrac inne dystrybucje)
powiązanie z mostkiem sieciowym
nano /var/lib/lxc/srv-mysql/config# Template used to create this container: /usr/share/lxc/templates/lxc-debian
# Parameters passed to the template: -r trixie
# For additional config options, please look at lxc.container.conf(5)
# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)
lxc.net.0.type = veth
lxc.net.0.hwaddr = 00:16:3e:dc:8c:9e
lxc.net.0.link = br0
lxc.net.0.flags = up
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
lxc.rootfs.path = dir:/var/lib/lxc/srv-mysql/rootfs
# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf
# Container specific configuration
lxc.tty.max = 4
lxc.uts.name = srv-mysql
lxc.arch = amd64
lxc.pty.max = 1024
#Auto start
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 3
# Limit pamięci RAM (np. 1 GB)
lxc.cgroup2.memory.max = 3G
# Limit pamięci SWAP (np. 512 MB)
lxc.cgroup2.memory.swap.max = 256M
# Przypisanie rdzeni procesora (rdzeń 0 )
lxc.cgroup2.cpuset.cpus = 4-5
#Montowanie katalogów domowych userów
lxc.mount.entry = /home/LO home/LO none bind,create=dir 0 0Ustawienia karty sieciowej dla kontenera
nano /var/lib/lxc/srv-mysql/rootfs/etc/network/interfaces# Pętla zwrotna
auto lo
iface lo inet loopback
# Interfejs główny
auto eth0
iface eth0 inet static
address 192.168.10.203
netmask 255.255.255.0
gateway 192.168.10.200
dns-nameservers 192.168.10.200 8.8.8.8Uruchomienie
sudo lxc-start -n moj-kontener -dWejście do konsoli kontenera
sudo lxc-attach -n moj-kontener