<šablona x-if=visible><šablona x-if=$isMobile()>
Co je LXD?
LXD (vyslovováno „Lex-Dee“) je systémový správce kontejnerů postavený na LXC (Linux Containers), který je v současné době podporován společností Canonical. Cílem LXD je poskytnout zážitek podobný virtuálnímu stroji, ale prostřednictvím kontejnerizace spíše než virtualizace. Ve srovnání s Dockerem pro poskytování aplikací nabízí LXD téměř plnou funkčnost operačního systému s dalšími funkcemi, jako jsou snímky, živé migrace, správa úložiště a další.
Hlavními výhodami LXD jsou vysoká hustota kontejnerů, které může podporovat, a výkon, který poskytuje ve srovnání s virtuálními stroji. Počítač s 2 GB RAM může dostatečně podporovat půl tuctu kontejnerů. Kromě toho LXD oficiálně podporuje obrazy kontejnerů hlavních distribucí Linuxu. Můžeme si vybrat distribuci a verzi Linuxu, které se mají spustit v kontejneru.
Tato příručka popisuje, jak nastavit Linode pro práci s LXD, jak LXD funguje v praxi a jak řešit běžné problémy.
Poznámka Pro zjednodušení výraz kontejner se v této příručce používá k popisu kontejnerů LXD.
Než začnete
-
Pokud jste tak ještě neučinili, vytvořte si účet Linode a Compute Instance. Podívejte se na naše příručky Začínáme s Linode a Vytvoření výpočetní instance.
-
Při aktualizaci systému postupujte podle našeho průvodce nastavením a zabezpečením výpočetní instance. Můžete také chtít nastavit časové pásmo, nakonfigurovat název hostitele, vytvořit omezený uživatelský účet a posílit přístup SSH.
Připojit úložný svazek
Při nastavování LXD můžete buď ukládat data kontejneru do externího svazku (jako je svazek blokového úložiště) nebo na disk připojený k vašemu Linode.
Blokovat úložiště
-
Postupujte podle průvodce Jak používat blokové úložiště s Linode a vytvořte svazek blokového úložiště o velikosti nejméně 20 GB a připojte jej k vašemu Linode. Poznamenejte si název zařízení a cestu ke svazku.
Pozor Ne naformátujte svazek a nepřidávejte jej do
/etc/fstab
.<šablona x-if=visible><šablona x-if=$isMobile()>
-
Upravte svůj konfigurační profil a v části Nastavení spouštění vyberte GRUB 2 jako vaše jádro. Další informace naleznete v části Spuštění jádra dodaného distribucí na KVM Linode.
-
Restartujte svůj Linode ze Správce Linode.
Disk
-
Ve Správci Linode najděte Disky a klikněte na Vytvořit nový disk .
<šablona x-if=visible><šablona x-if=$isMobile()>
Poznámka Pokud je na distribučním disku vašeho Linode již přiděleno 100 % dostupného místa na disku, budete muset před vytvořením úložného disku změnit velikost disku. Další informace naleznete v části Změna velikosti disku.
-
Upravte svůj konfigurační profil Linode. V části Blokovat přiřazení zařízení , přiřaďte svůj nový disk
/dev/sdc
. Poznamenejte si tuto cestu, kterou budete potřebovat při konfiguraci LXD v další části. -
V části Nastavení spouštění vyberte GRUB 2 jako vaše jádro.
-
Restartujte svůj Linode ze Správce Linode.
Inicializovat LXD
-
Nainstalujte balíčky
lxd
azfsutils-linux
:sudo apt install lxd zfsutils-linux
-
Přidejte svého uživatele Unixu do
lxd
skupina:sudo usermod -a -G lxd username
-
Spusťte novou relaci SSH, aby se tato změna projevila:
-
Spusťte
lxd init
pro inicializaci LXD:sudo lxd init
Během procesu inicializace budete několikrát vyzváni. Vyberte výchozí hodnoty pro všechny možnosti kromě
Use existing block device?
Pro tuto možnost vyberte ano a poté zadejte cestu k úložnému svazku přidanému v předchozí části.
Příkazy LXD
-
Seznam všech kontejnerů:
lxc list
Generating a client certificate. This may take a minute... If this is your first time using LXD, you should also run: sudo lxd init To start your first container, try: lxc launch ubuntu:16.04 +------+-------+------+------+------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+-------+------+------+------+-----------+
-
Seznam všech dostupných obrázků kontejneru:
lxc image list images:
+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ | ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ | alpine/3.4 (3 more) | 39a3bf44c9d8 | yes | Alpine 3.4 amd64 (20180126_17:50) | x86_64 | 2.04MB | Jan 26, 2018 at 12:00am (UTC) | +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ | alpine/3.4/armhf (1 more) | 9fe7c201924c | yes | Alpine 3.4 armhf (20170111_20:27) | armv7l | 1.58MB | Jan 11, 2017 at 12:00am (UTC) | +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ | alpine/3.4/i386 (1 more) | d39f2f2ba547 | yes | Alpine 3.4 i386 (20180126_17:50) | i686 | 1.88MB | Jan 26, 2018 at 12:00am (UTC) | +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ | alpine/3.5 (3 more) | 5533a5247551 | yes | Alpine 3.5 amd64 (20180126_17:50) | x86_64 | 1.70MB | Jan 26, 2018 at 12:00am (UTC) | +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ | alpine/3.5/i386 (1 more) | 5e93d5f4cae1 | yes | Alpine 3.5 i386 (20180126_17:50) | i686 | 1.73MB | Jan 26, 2018 at 12:00am (UTC) | +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ | alpine/3.6 (3 more) | 5010616d9a24 | yes | Alpine 3.6 amd64 (20180126_17:50) | x86_64 | 1.73MB | Jan 26, 2018 at 12:00am (UTC) | +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+ .....................................................................
Poznámka První dva sloupce pro alias a otisk poskytují identifikátor, který lze použít k určení obrázku kontejneru při jeho spouštění.
-
Spusťte nový kontejner s názvem
mycontainer
:lxc launch ubuntu:16.04 mycontainer
Creating mycontainer Starting mycontainer
-
Zkontrolujte seznam kontejnerů a ujistěte se, že nový kontejner běží:
lxc list
+-------------+---------+-----------------------+---------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-------------+---------+-----------------------+---------------------------+------------+-----------+ | mycontainer | RUNNING | 10.142.148.244 (eth0) | fde5:5d27:...:1371 (eth0) | PERSISTENT | 0 | +-------------+---------+-----------------------+---------------------------+------------+-----------+
-
Základní příkazy spouštějte v
mycontainer
:lxc exec mycontainer -- apt update lxc exec mycontainer -- apt upgrade
Poznámka Znaky
--
zadejte příkazlxc
příkaz neanalyzovat žádné další parametry příkazového řádku. -
Otevřete relaci prostředí v rámci
mycontainer
:lxc exec mycontainer -- sudo --login --user ubuntu
To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. [email protected]:~$
Poznámka
Obrázky kontejneru Ubuntu mají ve výchozím nastavení účet jiného uživatele než root s uživatelským jménem
ubuntu
. Tento účet může používatsudo
a nevyžaduje heslo k provádění administrativních úkolů.sudo
poskytuje přihlášení ke stávajícímu účtuubuntu
. -
Zobrazit protokoly kontejneru:
lxc info mycontainer --show-log
-
Zastavte kontejner:
lxc stop mycontainer
-
Odstraňte nádobu:
lxc delete mycontainer
Webový server Apache s LXD
Tato část vytvoří kontejner, nainstaluje webový server Apache a přidá příslušné iptables
pravidla za účelem odhalení příspěvku 80.
-
Spusťte nový kontejner:
lxc launch ubuntu:16.04 web
-
Aktualizujte seznam balíčků v kontejneru.
lxc exec web -- apt update
-
Nainstalujte Apache do kontejneru LXD.
lxc exec web -- apt install apache2
-
Přidejte
iptables
pravidlo pro odhalení portu 80. Když se někdo připojí k portu 80 prostřednictvím veřejné IP adresy, toto pravidlo jej přesměruje na port 80 kontejneru.Budete muset nahradit
your_public_ip
ayour_container_ip
s vaší veřejnou IP a IP kontejneru v tomto příkazu.PORT=80 PUBLIC_IP=your_public_ip CONTAINER_IP=your_container_ip sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "forward to the Apache2 container"'
-
Vytvořte
iptables
pravidlo přetrvá i po restartu instalacíiptables-persistent
. Až budete vyzváni k uložení pravidel IPv4 a IPv6, klikněte na Ano abyste je zachránili.sudo apt install iptables-persistent
-
Z místního počítače přejděte ve webovém prohlížeči na veřejnou IP adresu svého Linode. Měli byste vidět výchozí stránku Apache:
<šablona x-if=visible><šablona x-if=$isMobile()>
Další kroky
Pokud plánujete používat jeden web, pak jeden iptables
do kontejneru webu bude stačit. Pokud plánujete používat více webových stránek, budete muset nainstalovat webový server, jako je NGINX, a nastavit reverzní proxy v kontejneru. iptables
pravidlo by pak přesměrovalo na tento kontejner.
Další informace
Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.
- Úvod LXD
- Série příspěvků na blogu na LXD 2.0
- Komunita podpory LXD
- Vyzkoušejte LXD Online