Svazky Docker jsou preferovaným způsobem zpracování trvalých dat vytvořených a používaných kontejnery Docker. Podívejme se, jak to funguje, když se podíváme na to, jak vytvořit svazky Docker v systému Windows. Také se naučíte, jak je spravovat!
Tento blogový příspěvek obsahuje doprovodné video vytvořené přispěvatelem TechSnips, Mattem McElreathem. Klidně si dejte hodinky nebo, chcete-li text, čtěte dál!
Ukládání trvalých dat
Pokud chcete ukládat trvalá data pro kontejnery, existuje několik možností. Nejprve vám ukážu, jak používat připojení na vazbu . Momentálně se nacházím ve složce s názvem data na mém C:\ . Pokud vypíšu obsah této složky, můžete vidět, že mám pět textových souborů.
Pokud chci tuto složku zpřístupnit kontejneru, mohu ji připojit při spouštění kontejneru.
Pojďme do toho a spusťte kontejner pomocí docker run
. Spustím tento kontejner v interaktivním režimu a poté určím -V
. Zde vložím cestu ke své datové složce, za kterou následuje dvojtečka, poté uvedu cestu uvnitř kontejneru, kam chci tuto složku připojit.
Za tímto účelem uvedu C:\shareddata složka. Poté určím bitovou kopii jádra serveru Windows a nakonec uvedu, že chci spustit PowerShell, jakmile jsem v kontejneru.
docker run -it -v c:\Data:c:\shareddata microsoft/windowsservercore powershell
Nyní, když jsem v novém kontejneru, vypíšu obsah C:\ , můžete vidět, že mám sdílená data složka.
Pojďme do této složky a vypišme obsah. Zde je mých pět testovacích souborů, které jsou umístěny na mém hostiteli kontejneru.
V této složce mohu také vytvářet soubory, které budou dostupné pro jiné kontejnery nebo můj hostitel kontejneru. Pojďme do toho a spusťte novou položku k vytvoření souboru s názvem containertest .
Výše vidíme, že nový soubor byl vytvořen z kontejneru. Nyní opustím tento kontejner, který jej vypne spuštěním exit
.
Pokud spustím docker ps
, můžete vidět, že aktuálně nejsou spuštěny žádné kontejnery.
Výčet dat ve svazcích Docker
Nyní znovu vypíšeme obsah datové složky z mého hostitele kontejneru.
Můžeme vidět nový soubor, který byl vytvořen z kontejneru s názvem containertest . Svázání připojení má však omezenou funkčnost, takže svazky jsou preferovaným způsobem, jak dosáhnout toho, o co se snažíme. Chcete-li začít se svazky, můžeme spustit stejný příkaz ke spuštění kontejneru, ale tentokrát s několika malými rozdíly. Tam, kde jsme zadali svazek, místo použití cesty v souborovém systému hostitele kontejneru použiji slovo hostdata jako název svazku, který chci vytvořit a použít.
Zevnitř nového kontejneru, pokud vypíšu obsah C:\ , můžete znovu vidět, že mám složku s názvem shareddata .
Pokud vypíšu obsah té složky, je momentálně prázdná, protože jsme vytvořili prázdný svazek. Nyní spustíme Ctrl-P-Q který nás vyvede z běžícího kontejneru, ale ponechá jej spuštěný na pozadí.
Z hostitele kontejneru spusťte docker volume ls
. Zobrazí se seznam aktuálních svazků na tomto hostiteli kontejneru. Mám svazek s názvem hostdata , který byl vytvořen, když jsem jej specifikoval v docker run
příkaz.
Pokud spustím docker ps
můžeme vidět náš běžící kontejner.
Zastavte tento kontejner pomocí docker stop
. Nyní nemáme žádné běžící kontejnery.
Odstraňte zastavené kontejnery spuštěním docker rm
. Pokud znovu uvedu seznam svazků, uvidíte, že data hostitele objem je stále k dispozici a lze jej namontovat do nových kontejnerů.
Vytváření svazků Docker
Dalším způsobem, jak vytvořit svazek, je použít docker volume create
příkaz. Pokud nezadáte název, docker mu přidělí název, který je dlouhým seznamem náhodných znaků. Jinak zde můžete zadat jméno. Tento svazek budu nazývat logdata . Nyní můžeme vidět, že je v seznamu, když znovu vypíšeme svazky.
Nyní to připojíte k novému kontejneru. Použijte docker run
znovu a pro svazek zadejte svazek, který byl právě vytvořen, a připojte jej do c:\logdata .
> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell
Zevnitř kontejneru přejděte do logdata a vytvořte několik souborů. Právě teď v tomto adresáři nejsou žádné soubory, takže pokračujte a vytvořte si nějaké.
PS> New-Item -Name Log1.txt -ItemType File
PS> New-Item -Name Log2.txt -ItemType File
Nyní mám v tomto adresáři dva soubory protokolu.
Spusťte Ctrl-P-Q znovu, abyste opustili tento kontejner, dokud je stále spuštěn. Zatímco tento kontejner běží, spusťte nový kontejner se stejným připojeným objemem.
> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell
Pokud spustíme výpis na logdata složky v novém kontejneru můžeme vidět, že jsou sdíleny dva soubory protokolu.
Nyní opusťte tento kontejner. Stále byste měli mít jeden spuštěný kontejner a dva opuštěné kontejnery.
Nyní zastavte všechny spuštěné kontejnery a poté spusťte docker rm
k odstranění všech vypuštěných kontejnerů.
Znovu vypište svazky. data protokolu svazek je stále k dispozici pro montáž do budoucích kontejnerů.
Pokud spustíte spuštění docker volume
, získáte nápovědu k použití příkazu.
Kontrola svazků Docker
Již jsme se podívali na create
, takže přejdeme na inspect
. Pokud spustím docker volume inspect
proti logdata svazku, vrátí vlastnosti pro tento svazek, včetně bodu připojení, což je fyzická cesta ke svazku na hostiteli kontejneru.
Otevřete tuto složku pomocí Invoke-Item
a podívejte se. Pod logdata složka, existuje složka s názvem data . Pokud to otevřeme, můžeme vidět soubory, které byly dříve vytvořeny z kontejneru.
Odstranění svazků Docker
Chcete-li svazek odstranit, můžeme spustit docker volume rm
, následovaný názvem svazku, který chcete smazat.
> docker volume rm logdata
Nyní, když vyjmenuji svazky, logdata už tam není.
Nakonec můžeme použít prune
odstranit všechny nepoužívané místní svazky. Tím se odstraní všechny svazky, které nejsou připojeny ke spuštěnému nebo zastavenému kontejneru.
S tímto příkazem chcete být opatrní, takže je zde varování a výzva, abyste se ujistili, že to chcete udělat. Pokud zadám Y
a stiskněte Enter, zobrazí se mi, které svazky byly smazány.
A pokud znovu vypíšu své svazky, uvidíte, že byly všechny smazány.
Přehled
V tomto příspěvku na blogu byste měli získat dobrý přehled o správě svazků Dockeru ve Windows. Docker je skvělá kontejnerová platforma. Díky podpoře pro Windows a vašim nově získaným dovednostem při správě svazků Dockeru budete nezastavitelní!