Chcete zlepšit tuto otázku? Aktualizujte otázku tak, aby se zaměřila pouze na jeden problém úpravou tohoto příspěvku.
Zavřeno před 5 lety.
Vylepšete tuto otázku
Při zkoumání a učení se více o kontejnerech se zdá, že Docker má skvělou dokumentaci a příklady použití s průvodcem krok za krokem. Zatímco na druhé straně má LXD jen jednoduchý průvodce pro začátek. Jaké zdroje by měly dobrou dokumentaci k LXD, kterou bych si mohl prohlédnout?
Přijatá odpověď:
LXC vs LXD
Blogové příspěvky jsou pěkné a informativní a pro začátek je dobré si je přečíst, ale jakmile začnete, nedělají dobrou dokumentaci. Pokud jste jako já, může vám být docela jasný rozdíl mezi Dockerem a LXC/LXD poté, co jste si přečetli pouze několik běžně dostupných blogových příspěvků na toto téma. Ale rozdíl mezi starším projektem LXC a novým projektem LXD nebyl stejný. vše je mi jasné a většina stránek, které jsem našel, prostě neodvádí dobrou práci při vysvětlování způsobem, kterému bych rozuměl. Většinou se snaží odstranit zmatek mezi kontejnerem aplikace (Docker) a kontejnerem operačního systému (LXC/LXD). Pak jsem našel tento blogový příspěvek:Kam se hodí lxd
Jak už možná víte, všechny tyto nástroje (Docker/LXC/LXD) používají běžné funkce jádra, jako jsou jmenné prostory a cgroups, je jen otázkou, jak se je uživatelský prostor rozhodne použít. Shrnutí výše uvedeného příspěvku zaměřeného na vývoj LXC vs LXD na základě mého pochopení:
- LXC byl původně vytvořen k testování nových funkcí jádra; jako takový to byl mix skriptů shellu a programů C (ještě dnes používaných prostřednictvím „starých“ nástrojů příkazového řádku LXC).
- Potom to bylo refaktorováno do knihovny. Stávající nástroje příkazového řádku uživatelského prostoru LXC nyní používají tuto knihovnu.
- LXD je vyspělý způsob propojení s touto knihovnou, který není zatížen zpětnou kompatibilitou se starými nástroji příkazového řádku LXC. Je tedy jednodušší a schopnější.
Pokud někdo (např. správce) uvidí nějaké chyby výše, neváhejte moji odpověď opravit. 🙂
Několik poznámek k libvirt-lxc
Také v případě, že uvažujete o libvirt-lxc
(např. pokud již používáte libvirt
s KVM):
- Red Hat zavrhl toto:https://access.redhat.com/articles/1365153
- Upstream říká, že na tom budou stále pracovat:https://www.redhat.com/archives/libvirt-users/2015-August/msg00026.html
- I když
libvirt-lxc
málxc
v názvu ve skutečnosti nepoužíválxc
a místo toho přímo používá vlastnosti jádra. Nepleťte si tedy tentolibvirt
ovladač slxc
i přes zmatek v pojmenování. Reference:http://libvirt.org/drvlxc.html (Všimněte si, že si myslím, že proxmox dělá použijtelxc
správné, ale ne novějšílxd
nástroje). - Stéphane Graber navrhuje použití
libvirt
s kontejnery se nehodí, a že zatímco někdo by mohl napsatlibvirt-lxd
, myslí si, že to také špatně sedí. Stručně řečeno:libvirt
je navržen pro správu virtuálních počítačů a kontejnery nejsou virtuální počítače, takže se věci zamotají a vy podporujete pouze společného jmenovatele funkcí. Reference:https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010820.html - Pro posílení předchozího není tak snadné vytvářet nové kontejnery pomocí
libvirt-lxc
. Musíte mu například zadat cestu ke STÁVAJÍCÍMU rootfs pro nový kontejner, který chcete vytvořit, a vlibvirt-lxc
není žádná podpora roztočit to. Takže budete muset dělat věci, jako je použití externích nástrojů, jako jelxc-create
vytvořte nový kontejner ze šablony a poté vytvořte novýlibvirt-lxc
kontejner využívající právě vytvořený existující adresář, což mě pak nutí ptát se:„proč se trápit slibvirt-lxc
místo pouhého použitílxd
přímo?“
Dokumentace LXD
Zpět k vaší otázce, pokusil jsem se dát dohromady veškerou referenční dokumentaci k LXD, kterou jsem našel. Zde je pěkná dokumentace:
https://github.com/lxc/lxd/tree/master/doc
Konkrétně:
configuration.md
má pěkný referenční seznam možných možností konfigurace.imagehandling.md
hovoří o tom, jak se obrazy operačního systému ukládají lokálně do mezipaměti.lxd-ssl-authentication.md
pojednává o REST API a o tom, jak je zpřístupněno přes místní soket UNIX a volitelně na HTTPS a jak je to zabezpečeno.storage-backends.md
popisuje omezení a konfiguraci každého backendu úložiště.userns-idmap.md
lxd standardně používá neprivilegované kontejnery, což znamená, že UID/GID kontejneru musí být namapováno na hostitelské UID/GID; toto pojednává o tom.- Mnoho zbývající dokumentace není tak důležité číst nebo je více zaměřena na vývojáře.
Výše uvedené odkazy jsou z hlavní větve lxd
upstream, takže možná budete chtít zkontrolovat doc
adresář pro zdroje balíku, který jste skutečně nainstalovali, abyste náhodou nepoužili nějakou novou funkci, kterou ještě nemáte nainstalovanou.
Manuálových stránek ve skutečnosti není mnoho, ale zde je to, co jsem našel obsažené v lxd
a lxd-client
balíčky:
LXC(1)
– klientský program pro komunikaci s démonem serveru. Aktuálně (14.5.2016) spíše zbytečné a neinformativní. Doufejme, že v budoucnu bude možné pro tento nástroj vytvořit řadu manuálových stránek, podobně jakobtrfs
manuálové stránky.LXD(1)
– příkazový řádek démona serveru.
Samozřejmostí je také stránka průvodce serverem:https://help.ubuntu.com/lts/serverguide/lxd.html
Nakonec nezapomeňte, že lxd je založeno na knihovně lxc (ale ne na starých nástrojích příkazového řádku lxc). To znamená, že konfiguraci lxc lze stále provádět přímo, např. pomocí raw.lxc
možnost konfigurace v lxd. Proto je užitečný nějaký odkaz na základní konfiguraci LXC, ale pamatujte si, že byste se tomu měli vyhnout, pokud je to možné, abyste se vyhnuli konfliktu s LXD (např. pokud nastavíte stejnou položku konfigurace v LXD i LXC). V případě potřeby můžete procházet manuálové stránky a najít je:https://linuxcontainers.org/lxc/manpages/