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
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
Migrace konteineru na jiný server
Migrace LXC konteineru do Proxmox LXC
- vytvořte archiv
*.tar.gzze složkyrootfs- (/var/snap/lxd/common/lxd/storage-pools/default/containers/containername/rootfs) - uložte ho do složky
/var/lib/vz/template/cachena cílovémm serveru - vytvořte v Proxmox prostředí nový kontejner a použijte vytvořený
tar.gzsoubor jako šablonu
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
