GNU/Linux >> Znalost Linux >  >> Ubuntu

Docker Volumes:Jak vytvořit a začít

Úvod

Docker volumes jsou široce používané a užitečné nástroje pro zajištění stálosti dat při práci v kontejnerech. Jsou lepší alternativou než kompilace dalších zapisovatelných vrstev, které zvětšují velikost obrázku Docker.

V tomto kurzu se na praktických příkladech naučte, jak používat Docker Volumes.

Co jsou svazky Dockeru?

Svazky Docker jsou systémy souborů připojené ke kontejnerům Docker, aby se zachovala data generovaná běžícím kontejnerem.

Svazky jsou uloženy na hostiteli nezávisle na životním cyklu kontejneru. To uživatelům umožňuje snadno zálohovat data a sdílet systémy souborů mezi kontejnery.

Začínáme s Docker Volumes

Existují různé způsoby, jak připojit svazek Docker při spouštění kontejneru. Uživatelé se mohou rozhodnout mezi -v a --mount příznaky, které se přidávají do docker run příkaz.

Tento článek ukazuje příklady obou používaných příznaků.

Jak vytvořit svazek dockeru

Chcete-li vytvořit svazek Docker, použijte příkaz:

docker volume create [volume_name]

Docker automaticky vytvoří adresář pro svazek na hostiteli pod /var/lib/docker/volume/ cesta. Nyní můžete tento svazek připojit ke kontejneru a zajistit tak stálost dat a sdílení dat mezi více kontejnery.

Chcete-li například vytvořit svazek pod názvem data , spustíte příkaz:

docker volume create data

Seznam svazků Docker

Chcete-li ověřit, že jste úspěšně vytvořili svazek Docker, požádejte Docker, aby vypsal všechny dostupné svazky pomocí:

docker volume list

Výstup zobrazí seznam svazků s uvedením jejich umístění (OVLADAČ ) a jejich VOLUME NAME . Na obrázku níže můžete vidět objem dat vytvořené v předchozí části.

Kontrola svazků Docker

Chcete-li zobrazit další informace o svazku Docker, použijte inspect příkaz:

docker volume inspect [volume_name]

Uvádí podrobnosti o svazku, včetně jeho umístění v hostitelském souboru (Mountpoint ). Vše uložené v datovém svazku lze také nalézt v adresáři uvedeném pod cestou k přípojnému bodu.

Připojení datového svazku

Chcete-li připojit datový svazek ke kontejneru, přidejte --mount příznak k docker run příkaz. Přidá svazek do určeného kontejneru, kde ukládá data vytvořená ve virtuálním prostředí.

Chcete-li spustit kontejner a připojit k němu datový svazek, postupujte podle základní syntaxe:

docker run --mount source=[volume_name],destination=[path_in_container] [docker_image]

Nahraďte [path_in_container] s cestou, kam chcete umístit objem dat v kontejneru. Vše uložené v tomto adresáři se také automaticky uloží do datového svazku na hostiteli.

Například ke spuštění kontejneru Ubuntu a připojení dat hlasitost, spusťte:

docker run -it --name=example1 --mount source=data,destination=/data ubuntu

Příkaz dává Dockeru pokyn ke spuštění kontejneru v interaktivním režimu (-it ) z obrazu Ubuntu pod názvem example1 , při připojování dat objemu do /data adresář uvnitř kontejneru.

Poté zkontrolujte, zda byl svazek úspěšně připojen, uvedením obsahu kontejneru:

ls

Najděte svazek Docker pod názvem definovaným při spouštění kontejneru. V tomto příkladu se jedná o data .

Kopírování souborů mezi kontejnery ze sdíleného svazku

Podívejme se, jak vám svazky Docker umožňují sdílet soubory mezi kontejnery.

K tomu použijeme objem a kontejner vytvořený v předchozí části. To zahrnovalo spuštění příkazů:

  • docker volume create data
  • docker run -it --name=example1 --mount source=data,destination=/data ubuntu

1. Jakmile přepnete na příkazový řádek kontejneru, přejděte do adresáře datového svazku:

cd data

2. Vytvořte prázdný ukázkový soubor pomocí dotykového příkazu:

touch sample1.txt

3. Nyní opusťte kontejner:

exit

4. Poté spusťte nový kontejner příklad2 se stejným objemem dat:

docker run -it --name=example2 --mount source=data,destination=/data ubuntu

5. Vyjmenujte obsah nádoby. Měli byste najít datový adresář, jako v příklad1 :

ls

6. Přejděte do datového adresáře a vypište jeho obsah:

cd data
ls

Výstup by měl obsahovat sample1.txt soubor, který jste vytvořili v předchozím kontejneru (příklad1 ).

Připojení hostitelského adresáře jako datového svazku

Můžete také připojit existující adresář z hostitelského počítače do kontejneru. Tento typ svazku se nazývá Hostitelské svazky .

Hostitelské svazky můžete připojit pomocí -v příznak a specifikující název hostitelského adresáře.

Vše v hostitelském adresáři je pak dostupné v kontejneru. A co víc, všechna data vygenerovaná v kontejneru a umístěná do datového svazku jsou bezpečně uložena v hostitelském adresáři.

Základní syntaxe pro připojení hostitelského adresáře je:

docker run -v "$(pwd)":[volume_name] [docker_image]

"$(pwd)" atribut instruuje Docker, aby připojil adresář, ve kterém se uživatel aktuálně nachází.

Následující příklad popisuje, jak se to dělá.

1. Nejprve vytvořte vzorový adresář na hostiteli pod názvem tmp a přesuňte se do něj:

mkdir tmp
cd tmp

2. Jakmile jste v adresáři, vytvořte testovací soubor, abyste zjistili, zda bude dostupný z kontejneru:

touch file.txt

2. Poté použijte docker run příkaz ke spuštění kontejneru Ubuntu s připojeným hostitelským adresářem:

docker run -it -v "$(pwd)":/data1 ubuntu

Tím se kontejner spustí v interaktivním režimu a připojí se svazek pod názvem data1 .

3. Vypište obsah kontejneru a ověřte, že obsahuje data1 adresář:

ls

4. Otevřete připojený adresář a vypište obsah. Výstup by měl zobrazovat soubor, který jste vytvořili na hostiteli:

cd data1
ls

Oprávnění ke svazku a vlastnictví

Oprávnění k svazku lze změnit konfigurací vlastnictví v rámci souboru Dockerfile.

Použijte RUN instrukce a chown příkaz k nastavení oprávnění svazku Docker. Ujistěte se, že tato instrukce předchází řádek definující VOLUME .

Alternativně můžete změnit vlastnictví adresáře používaného jako hostitelský svazek.

Pokyny k použití chown naleznete v Linux File Permission Tutorial:How To Check and Change Permissions.

Jak odstranit svazky Docker

Chcete-li odstranit svazek Docker, musíte zadat jeho název.

Základní syntaxe pro odebrání svazku Docker v příkazovém řádku je:

docker volume rm [volume_name]

Docker odebere svazky pouze v případě, že se právě nepoužívají. Pokud existuje kontejner se zadaným objemem, odpoví chybou. Chcete-li pokračovat, zastavte a vyjměte kontejner a poté znovu spusťte docker volume rm příkaz.

Jak odstranit všechny svazky najednou

Chcete-li odstranit všechny nepoužívané svazky Dockeru jediným příkazem:

docker volume prune

Výstup vás upozorní, že odstraní všechny místní svazky, které nepoužívá alespoň jeden kontejner. Stiskněte y pokračovat.


Ubuntu
  1. Jak vytvořit oddíl LVM/fyzický objem> 2 TB?

  2. Jak začít s Juju?

  3. Pochopení svazků Docker

  1. Jak začít s překlady?

  2. Jak získat informace o kontejneru v Dockeru

  3. Jak získat PID právě zahájeného procesu

  1. Jak odebrat obrázky, kontejnery, sítě a svazky dockeru

  2. Jak vytvořit Docker Image pomocí Dockerfile

  3. NFS Docker Volumes:Jak vytvořit a používat