LXC kontejnery v Ubuntu

LXC kontejnery v Ubuntu
LXD je nadstavba nad LXC, umí vytvářet unprivileged kontejnery. Tedy chceme používat LXD.

Vytvořit ZFS dataset:
zfs create -o compression=on tank/lxc

apt-get install lxc lxd
lxd init

# lxd init
Name of the storage backend to use (dir or zfs) [default=zfs]:
Create a new ZFS pool (yes/no) [default=yes]? no
Name of the existing ZFS pool or dataset: tank/lxc
Would you like LXD to be available over the network (yes/no) [default=no]? yes
Address to bind LXD to (not including port) [default=all]:
Port to bind LXD to [default=8443]:
Trust password for new clients:
Again:
Would you like stale cached images to be updated automatically (yes/no) [default=yes]?
Would you like to create a new network bridge (yes/no) [default=yes]? no
LXD has been successfully configured.

Upravit profil
sudo update-alternatives --config editor
lxc profile show default

Pozor, jména nesmí mít tečky - viz https://github.com/lxc/lxd/issues/1431
lxc launch ubuntu-daily:16.10 container01

lxc launch images:debian/stretch/amd64 suiteAppLxc -c limits.memory=16GB -c limits.memory.swap=false
Do konzole:
lxc exec container01 bash
lxc exec container01 -- /bin/bash

V Debian kontejneru pak:
apt install ssh

Kdyby se něco nepovedlo, lze vše odinstalovat a začít znovu:
apt remove --purge lxc lxd

Přehled parametrů:
https://github.com/lxc/lxd/blob/master/doc/configuration.md

lxc config set container01 limits.cpu 4
lxc config set container01 limits.cpu.priority 8
lxc config set container01 limits.disk.priority 10
lxc config set container01 limits.memory 16GB

Statická IP - v kontejneru:
echo 'network: {config: disabled}' > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Nastavit v /etc/network/interfaces.d/50-cloud-init.cfg normálně


adduser david
adduser david sudo
deluser ubuntu

Staré LXC příkazy:

sed -i 's/lxc.network.link = lxcbr0/lxc.network.link = br0/' /etc/lxc/default.conf
vi /etc/default/lxc-net
USE_LXC_BRIDGE="false"
a zakomentovat ostatní nastavení sítě.

vi /etc/default/lxc
autostart globální nastavení

Další příkazy:

ls /usr/share/lxc/templates/
lxc-create -n <container-name-without-lxc-prefix> -t <template>
lxc-create -t ubuntu -n cont.cesal.cz -B zfs --zfsroot=tank/lxc
lxc-ls --fancy 
lxc-destroy -n cont.cesal.cz 
lxc-start -n cont.cesal.cz
lxc-shutdown -n cont.cesal.cz
lxc-stop -n cont.cesal.cz
lxc-checkconfig
lxc-info -n cont.cesal.cz

Autostart

buď globální všechny kontejnery, nebo:
lxc-autostart --help