Obsah

LXD

Instalace

Konfigurace

lxd init

Základní konfigurace LXD obsahuje nastavení uložiště, nastavení sítě, nastavení vzdáleného přístupu.

Základní příkazy

Vypíše seznam všech dostupných obrazů

lxc image list images:

Vypíše seznam všech dostupných debian obrazů

lxc image list images: 'debian'

nebo archlinux obrazů

lxc image list images: 'archlinux' 

Vytvoří a spustí nový kontejner s aktuální verzí Ubuntu. Název kontejneru je vygenerován dynamicky.

lxc launch ubuntu:

Vytvoří a spustí nový kontejner. Kontejner pojmenuje dokuwiki

lxc launch ubuntu: dokuwiki

Vytvoří a spustí nový debian 9 kontejner. Kontejner pojmenuje nextcloud

lxc launch images:debian/9 nextcloud  

Seznam kontejnerů

lxc list

Podrobné info o kontejneru

lxc info <container>

Vytvoření kontejneru, bez startu kontejneru

lxc init ubuntu:  dokuwiki

Start, stop, restart, pause

lxc start <container>
lxc stop <container>  
lxc restart <container>
lxc restart <container> --force
lxc pause <container>
lxc delete <container>

Spuštění konzole kontejneru

lxc exec ContainerName -- bash

Nastavení zdrojů pro container

CPU limits

https://www.jamescoyle.net/how-to/2532-setting-cpu-resource-limits-with-lxc

Odkazy

https://bayton.org/2016/05/lxd-zfs-and-bridged-networking-on-ubuntu-16-04-lts/
https://oliverveits.wordpress.com/2016/09/11/lxd-vs-docker-or-getting-started-with-lxd-containers/
https://www.stgraber.org/2016/03/11/lxd-2-0-introduction-to-lxd-112/
https://www.mywebtech.blog/linux-containers-lxd-vs-kvm/
https://discuss.linuxcontainers.org/t/how-to-properly-backup-restore-lxd-containers-with-zfs-backend/417

Migrace z KVM na LXC(asi lze použít i pro XEN)
https://snikt.net/blog/2014/03/22/convert-kvm-image-to-lxc-container/
https://blog.a2o.si/2015/10/11/migrate-convert-existing-full-centos-6-server-to-lxc-container/
https://blog.a2o.si/2015/10/23/migrate-convert-existing-full-ubuntu-14-04-server-to-lxc-container/

LXD 3.X

Instalace LXD 3.8 na Ubuntu 18.0.4

Nejprve odinstalovat předchozí verzi LXD - v tomto případě nainstalovanou z balíčku pomocí apt install lxd.

apt remove -y lxd
apt purge lxd
apt remove -y lxd-client
dpkg -la |grep lxd

Zkontrolovat poslední dostupnou verzi LXD

snap info lxd

Instalace

snap install lxd  

https://github.com/lxc/lxd/blob/master/doc/containers.md#type-proxy

HAProxy

https://blog.ssdnodes.com/blog/linux-containers-lxc-haproxy/
https://www.digitalocean.com/community/tutorials/how-to-host-multiple-web-sites-with-nginx-and-haproxy-using-lxd-on-ubuntu-16-04

Hosting multiple websites with containers and HAProxy

How to use LXD container hostnames on the host in Ubuntu 18.04

Mapování lxd jmen kontejnerů na hostname pomocí DDNS

https://blog.simos.info/how-to-use-lxd-container-hostnames-on-the-host-in-ubuntu-18-04/

Záloha LXD konteineru

https://openschoolsolutions.org/how-to-backup-lxd-containers/

Migrace konteineru na jiný server

https://discuss.linuxcontainers.org/t/backup-the-container-and-install-it-on-another-server/463/13

Migrace LXC konteineru do Proxmox LXC

https://serverfault.com/questions/731400/how-to-migrate-a-regular-lxc-container-to-a-proxmox-lxc-container

Připojení složky - disku do LXC kontejneru

Nepovedlo se mi připojit disk s opravněním uživatele root. Založil jsem běžného uživatele jak na host tak v konteineru a nastavil mapování /etc/subuid a /etc/subgid

Reload lxd služby Záleží jestli bylo LXD prostředí instalováno ze SNAP nebo jako balík DEB.
pro snap: systemctl reload snap.lxd.daemon
pro deb: systemctl restart lxd

Nastavení sdíleného disku pro zálohy - LXC thema-sklad

#Omezeni pameti na 8GB
lxc config set thematrade-sklad limits.memory 8192MB

###Mapovani disku do LXC kontejneru s opravnenim pro zapis

# Vytvoreni ZFS filesystemu vspool/themabck
# Nastaveni quota - refquota
zfs set refquota=2000G vspool/themabck

NAME             PROPERTY  VALUE     SOURCE
vspool/themabck  refquota  1.95T     local
vspool/themabck  quota     none      default

# Primapovani
vspool/themabck           2.53M  1.95T  2.53M  /mnt/themabck

# Zalozeni uzivatele themabackup - id 1001 jak na fyzickem serveru, tak v kontejneru:

themabackup:x:1001:1001:,,,:/home/themabackup:/bin/bash

# Povoleni pro LXD pouzit uid a gid
# Pridat do /etc/subuid a /etc/subguid

lxd:1001:1
root:1001:1

# reload LXD
systemctl reload snap.lxd.daemon


# nastaveni mapovani pro kontejner (id uzivatele themabackup je stejne na fyzickem server i ve virtualnim serveru id = 1001)
lxc config set thematrade-sklad raw.idmap "both 1001 1001"
lxc config device add thematrade-sklad backup disk source=/mnt/themabck path=/backup/

# restart lxc kontejner
lxc restart thematrade-sklad

https://www.cyberciti.biz/faq/how-to-add-or-mount-directory-in-lxd-linux-container/
https://ubuntu.com/blog/custom-user-mappings-in-lxd-containers

Vytvoření image z existujícího konteineru

How to create LXD image from an existing snapshot

https://sleeplessbeastie.eu/2021/08/16/how-to-create-lxd-image-from-an-existing-snapshot/

# snapshot
lxc snapshot nextcloud-tmpstore nextcloud-tmpstore_snapshot20223107

# image
lxc publish nextcloud-tmpstore/nextcloud-tmpstore_snapshot20223107 --alias Nextcloud_v24 description="Nextcloud v. 24 - prazdny"

# list
root@ubuntu:/etc# lxc image list
+---------------+--------------+--------+---------------------------------+--------------+-----------+----------+-------------------------------+
|     ALIAS     | FINGERPRINT  | PUBLIC |           DESCRIPTION           | ARCHITECTURE |   TYPE    |   SIZE   |          UPLOAD DATE          |
+---------------+--------------+--------+---------------------------------+--------------+-----------+----------+-------------------------------+
| Nextcloud_v24 | 6b175d2ed567 | no     | Nextcloud v. 24 - prazdny       | x86_64       | CONTAINER | 725.02MB | Jul 31, 2022 at 11:21am (UTC) |
+---------------+--------------+--------+---------------------------------+--------------+-----------+----------+-------------------------------+
|               | b24880a8e02d | no     | Centos 7 amd64 (20220907_07:36) | x86_64       | CONTAINER | 84.42MB  | Sep 7, 2022 at 10:56am (UTC)  |
+---------------+--------------+--------+---------------------------------+--------------+-----------+----------+-------------------------------+

# info
root@ubuntu:/etc# lxc image info Nextcloud_v24
Fingerprint: 6b175d2ed567ecad1c9c839fdbedcfacdaf3ef2cf78bff7a32c77161711658a2
Size: 725.02MB
Architecture: x86_64
Type: container
Public: no
Timestamps:
    Created: 2022/07/31 11:21 UTC
    Uploaded: 2022/07/31 11:21 UTC
    Expires: 2022/03/09 05:31 UTC
    Last used: 2022/08/01 10:28 UTC
Properties:
    description: Nextcloud v. 24 - prazdny
Aliases:
    - Nextcloud_v24
Cached: no
Auto update: disabled
Profiles:
    - default
DokuWiki Appliance - Powered by TurnKey Linux