Docker Engine podporuje systém zásuvných modulů, který vám umožňuje přidat další funkce do běhového prostředí kontejneru. Zásuvné moduly pro nové ovladače úložiště, síťové zásobníky a systémy protokolování jsou volně dostupné.
Moderní verze Docker Engine obsahují vše, co potřebujete ke správě zásuvných modulů v rámci CLI. V této příručce se soustředíme na tento „spravovaný“ systém zásuvných modulů. Pluginy, které používají starší systém pluginů, musíte nainstalovat a udržovat ručně.
Vše o pluginech
Pluginy rozšiřují Docker Engine o nové možnosti, které jsou příliš specifické na to, aby mohly být dodány s obecnou instalací. S pluginy běžně nekomunikujete přímo. Jakmile je plugin nainstalován, můžete odkazovat na zdroje, které poskytuje při spouštění existujících příkazů Docker.
Existují tři hlavní typy pluginů:
- Protokolování – Tyto pluginy přidávají nové ovladače protokolování a umožňují vám ukládat protokoly mimo Docker Engine a váš hostitelský počítač.
- Síť – Síťové pluginy mohou přidat podporu pro nové typy sítí a související funkce.
- Hlasitost – Zásuvné moduly úložiště přinášejí do Dockeru další souborové systémy a ovladače svazků, což vám dává více možností pro trvalá data.
K dispozici jsou také pluginy s funkcemi, které nespadají do těchto základních oblastí. Pluginy jsou vytvořeny komunitními dodavateli; můžete si napsat svůj vlastní pomocí veřejných pluginů API a Go SDK.
Pluginy jsou distribuovány prostřednictvím Docker Hub. Dostupné pluginy najdete tak, že přejdete na stránku Prozkoumat a v horní části vyberete kartu Pluginy. V současné době je k dispozici více než 600 pluginů.
Pokud napíšete svůj vlastní plugin, můžete jej odeslat do Docker Hub pomocí docker plugin push
příkaz. Funguje to podobně jako vložení obrázku do veřejného registru. Musíte spustit docker plugin create
nejprve převeďte manifest a souborový systém vašeho pluginu na balíček, který je připraven k odeslání. Další informace o vytváření zásuvných modulů můžete získat v dokumentech Docker.
Instalace pluginu
Zásuvné moduly se instalují pomocí docker plugin install
příkaz. Tím se jako argument přijímá název pluginu Docker Hub:
docker plugin install store/example/example-plugin:version
Odkazy na plugin vypadají jako odkazy na obrázky, které začínají store/
. Stejné zásady označování platí i při specifikování verze pluginu, který se má nainstalovat. Na rozdíl od obrázků nemůžete verzi vynechat a automaticky stáhnout latest
tag.
Číslo verze pluginu a zkopírujte instalační příkaz připravený ke spuštění kliknutím na tlačítko „Pokyny k instalaci“ na stránce Docker Hub. Bezplatné pluginy vám umožní přejít na novou obrazovku s běžným polem pro kopírování a vkládání vpravo nahoře. Spusťte příkaz v terminálu a začněte instalovat plugin.
Pluginy obvykle požadují přístup k hostitelským oprávněním, aby mohly poskytovat své funkce. Například síťový plugin bude muset mít přístup k host
Dockeru síť, takže může připojit nové zdroje. Potvrďte výzvu k povolení zadáním y
a stiskněte enter pro dokončení instalace. Výzvu můžete přeskočit přidáním --grant-all-permissions
příznak k vaší install
příkaz; toto je ideální pro neinteraktivní instalace, ale riskuje neúmyslné udělení oprávnění, pokud se plugin aktualizuje o nové funkce.
Pluginy jsou po instalaci automaticky povoleny. Povolení pluginu umožňuje spouštění skriptů před instalací. Použijte --disable
flag pro výchozí stav pluginu na zakázaný a ponechá jej inertní, dokud jej později ručně neaktivujete.
Zobrazení podrobností o pluginu
Po instalaci se váš plugin zobrazí při spuštění docker plugin ls
:
docker plugin ls
Podrobnější informace o jednom pluginu lze získat z docker inspect
příkaz. To přijme ID nebo značku pluginu a zobrazí podrobný JSON, který popisuje manifest pluginu:
docker inspect eccffc
Instalace offline
Docker CLI nemá vestavěný způsob instalace pluginů v režimu offline. Nicméně můžete přidat zásuvné moduly do instalace Dockeru se vzduchovou mezerou tak, že je nejprve nainstalujete na síťového klienta a poté zkopírujete soubory zásuvných modulů do offline systému.
Nainstalované pluginy najdete v /var/lib/docker/plugins
adresář na vašem hostiteli. Každý plugin dostane svůj vlastní podadresář pojmenovaný svým ID. Tato ID jsou viditelná ve výstupu z docker plugin ls
příkaz.
Povolení a zakázání pluginů
Pluginy lze povolit nebo zakázat. Aktuální stav uvidíte v posledním sloupci ls
výstup. Deaktivovaný plugin se nenačte, takže se bude chovat, jako by nebyl nainstalován.
Použijte docker plugin enable
a docker plugin disable
příkazy ke změně stavu pluginu. Jako jediný argument příkazu zadejte ID jednoho z vašich nainstalovaných pluginů:
docker plugin enable eccffc
V deaktivaci pluginu vám může být zabráněno, pokud jej aktivně používá vaše konfigurace Docker Engine nebo jeden z vašich kontejnerů. Přidání -f
flag vynutí deaktivaci pluginu, ale měl by být používán střídmě, protože riskujete nechtěné opuštění kontejneru.
Pluginy se odinstalují pomocí docker plugin rm
příkaz. Chcete-li plugin zcela odstranit z Dockeru, zadejte jeho ID nebo název. rm
má stejné chování jako disable
při manipulaci s aktivně používanými pluginy a následně vynucených odstranění.
Změna nastavení pluginu
Systém zásuvných modulů Docker obsahuje integrovaný mechanismus, pomocí kterého mohou autoři zásuvných modulů odhalit přizpůsobitelná nastavení. Jako uživatel můžete tato nastavení změnit pomocí docker plugin set
příkaz:
docker plugin set example-plugin setting-key=new-value
Nahraďte example-plugin
s ID nebo názvem pluginu, na který cílíte. Hodnota setting-key
pluginu nastavení bude aktualizováno na new-value
.
Dostupná nastavení se přirozeně liší plugin od pluginu. Měly by být zdokumentovány v popisu pluginu na Docker Hub. Docker CLI nemá vestavěný příkaz k zobrazení všech dostupných nastavení pluginu, ale zobrazují se v docker plugin inspect
výstup. Hledejte Settings
pole v reprezentaci JSON pluginu; bude obsahovat objekty s Name
a Settable
pole pro možnosti, které můžete změnit prostřednictvím CLI.
Aktualizace vašich pluginů
Pluginy jsou aktualizovány docker plugin update
příkaz. Stejně jako ostatní příkazy bere jako argument ID pluginu nebo značku.
Upgrade pluginu stáhne a nainstaluje nejnovější verzi dostupnou na Docker Hub. Pokud již používáte nejnovější verzi, příkaz přeinstaluje aktuální verzi. Budete vyzváni, abyste pluginu udělili všechna nová oprávnění, která vyžaduje. --grant-all-permissions
příznak je přijat pro přeskočení výzvy v prostředích, kde není možné interaktivní zadávání.
Neexistuje způsob, jak aktualizovat všechny pluginy ve vašem systému jedním příkazem. Nejlepší bude, když se přihlásíte k odběru oznámení o vydání od dodavatelů vašich pluginů a poté použijete aktualizace, jakmile budou k dispozici. Tím zajistíte, že vaše pluginy zůstanou zabezpečené a podporované.
Přehled
Ekosystém pluginů Dockeru vám umožňuje přidat další funkce do Docker Engine. Pluginy jsou umístěny na Docker Hub a lze je nainstalovat z vašeho terminálu. CLI obsahuje aktualizátor zásuvných modulů, ale funguje vždy pouze s jedním zásuvným modulem, nikoli s celým vaším katalogem.
Nyní víte, jak používat a spravovat pluginy, můžete začít procházet Docker Hub a najít možnosti, jak zlepšit svůj pracovní postup. Elastic Logging Plugin streamuje protokoly kontejnerů Dockeru do clusteru Elastic stack, vSphere for Docker vám umožňuje používat úložiště VMWare vSphere pro vaše trvalé svazky a Weave Net přináší do Dockeru multicastové šifrované sítě. Pokud nevidíte, co potřebujete, použijte plugin API a zkuste napsat své vlastní řešení, které můžete publikovat širší komunitě prostřednictvím centra.