GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Vysvětlení svazků Docker s příklady

V případě Docker , data budou uložena uvnitř kontejneru. A když odstraníme kontejner, data budou ztracena. V této příručce se naučíme, jak vytvořit svazky dockeru, jak je připojit ke kontejnerům a jak lze stejný svazek sdílet mezi dvěma nebo více kontejnery pro ukládání dat.

Pokud ještě neznáte základy dockeru, přečtěte si následující příručku:

  • Začínáme s Dockerem

Proč požadujeme svazky pro Docker?

  • Při smazání kontejnerů se svazky nesmažou.
  • Připojte nebo odeberte svazek ke kontejnerům.
  • Sdílejte svazky (úložiště/data) mezi různými kontejnery.
  • Odpojení kontejnerů od úložiště.
  • Ukládání svazku na vzdáleném hostiteli nebo cloudu.

Můžeme mít logické rozdělení dat i kontejneru. Data můžeme uchovat takovým způsobem, že pokud je odstraníme
kontejneru pak budou přítomna i naše data. Takže po zničení kontejneru můžeme objem připojit k jakémukoli existujícímu kontejneru, stejně jako k novému kontejneru.

Začínáme s Docker Volumes

Hlasitost ukotvitelného panelu zobrazí podrobnosti o příkazech svazku, pomocí kterých můžeme vytvořit svazek, prohlédnout si podrobná data svazku, vypsat dostupné svazky a svazky odebrat.

# docker volume

Zobrazit sekci nápovědy příkazu "docker volume"

Vytváření svazků Docker

Syntaxe pro vytvoření svazku dockeru je:

docker volume create <volume_name>

Příklad:

# docker volume create devops_volume

Výše uvedený příkaz vytvoří ukotvitelný svazek s názvem devops_volume .

vytvořit svazek docker

Výpis svazků ukotvitelného panelu

Chcete-li zobrazit seznam všech vytvořených svazků ukotvitelného panelu, spusťte:

# docker volume ls

vypsat svazky ukotvitelného panelu

Kontrola svazků dockeru

Inspekce svazku ukotvitelné stanice vám poskytne podrobnosti o vytvoření svazku, umístění, názvu a rozsahu.

Syntaxe:

docker volume inspect <volume_name>

Dovolte mi, abych vám ukázal podrobnosti o svazku dockeru s názvem devops_volume .

# docker volume inspect devops_volume

zkontrolovat svazky dockeru

Vytváření kontejnerů s připojeným svazkem

Syntaxe:

docker container create --name <container_name> -it --mount source<volume_name>,target=/<folder_Name> <image_name>

Příklad:

# docker container create --name myBusyBox1 -it --mount source=devops_volume,target=/app busybox

vytvořte kontejner s připojeným svazkem

Chcete-li ověřit, zda byl kontejner vytvořen nebo ne, použijte docker ps -a příkaz:

výstup příkazu "docker ps"

Spouštění kontejnerů

Chcete-li spustit nově vytvořený kontejner, například myBusyBox1 , spustit:

# docker container start myBusyBox1

spustit ukotvitelné kontejnery

Jak vidíte na výše uvedeném snímku obrazovky, kontejner myBusyBox1 byl vytvořen před 8 minutami a spuštěn před 6 sekundami.

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

Vytvořme scénář, ve kterém vytvoříme soubor v jednom kontejneru ve sdíleném umístění a pokusíme se získat přístup k souboru z jiného kontejneru.

Již jsme vytvořili kontejner s názvem myBusyBox1. Vytvořme další, například myBusyBox2 .

vytvořit kontejner

Nyní máme dva kontejnery v běžícím stavu, myBusyBox1 a myBusyBox2.

Pojďme se připojit k prvnímu kontejneru a vytvořit soubor v /app složka.

# docker exec -it myBusyBox1 sh

Výše uvedený příkaz vás zavede do kontejneru.

Poté vytvořte novou složku s názvem devops uvnitř složky /app a ukončete první kontejner.

připojit k prvnímu kontejneru

Nyní zkopírujte soubor, například index.html , z místního systému do umístění /app/devops/ kontejneru myBusyBox1.

# docker container cp index.html myBusyBox1:/app/Devops

Nyní se připojte k jinému druhému kontejneru, tj. myBusyBox2 a ověřte, že v /app/devops složka index.html soubor je přítomen nebo není.

# docker exec -it myBusyBox2 sh

připojit k druhému kontejneru

Z výše uvedeného snímku obrazovky je potvrzeno, že oba kontejnery sdílejí stejný svazek.

Umístění přípojného bodu svazku můžeme zkontrolovat pomocí docker volume inspect příkaz jako níže:

# docker volume inspect devops_volume

příkaz docker inspect volume

Jak vidíte, umístění přípojného bodu je /var/lib/docker/volumes/devops_volume/_data .

Pojďme do umístění přípojného bodu a podívejme se, zda je zkopírovaný soubor dostupný nebo ne.

bod připojení svazků docker

V umístění Mountpoint jsme našli stejný soubor.

Smazat svazky ukotvitelného panelu

Syntaxe pro odstranění svazku je:

docker volume rm <volume_name>

Smažeme svazek s názvem devops_volume .

# docker volume rm devops_volume

odstranit svazek ukotvitelného panelu

Na výše uvedeném snímku obrazovky se pokoušíme smazat svazek, ale nelze jej smazat, protože svazek se již používá. Takže nejprve musíme zabít kontejner a uvolnit objem. A pak můžeme svazek smazat.

Chcete-li to provést, nejprve odstraňte všechny spuštěné kontejnery pomocí příkazu:

# docker rm –f $(docker ps -aq)

A pak odeberte svazek:

# docker volume rm devops_volume

odstranit svazky dockeru

Smazat všechny svazky najednou

Pomocí docker rm příkaz, můžeme odebrat jeden svazek najednou. Pokud máme více svazků a chceme smazat všechny svazky, musíme použít prune příkaz.

Pojďme vytvořit několik svazků:

vytvořit svazky dockeru

Nyní odstraňte všechny svazky dockeru najednou pomocí příkazu:

# docker volume prune

odstranit všechny svazky dockeru najednou

Vidět? Smazali jsme všechny svazky najednou.

Doporučené čtení:

  • Vysvětlení pojmů Docker Networking
  • Jak automaticky aktualizovat spuštěné kontejnery Docker
  • ctop – nástroj pro monitorování příkazového řádku pro linuxové kontejnery
  • Portainer – nejsnazší způsob správy Dockeru
  • PiCluster – jednoduchá webová aplikace pro správu dockerů
  • Dockly – Správa kontejnerů Docker z terminálu

O autorovi:

Dhruv Tiwari je DevOps Engineer, který miluje automatizaci věcí, práci s Linuxem ve velkém a sní o dni, kdy jsou systémy dostatečně chytré, aby se nikdy nemusely přihlašovat k linuxovému boxu. Cesta CI/CD od zdrojového kódu přes nasazení kódu až po produkci.


Docker
  1. Co je Docker? Naučte se používat kontejnery – vysvětleno s příklady

  2. Protokoly Docker:Co jsou a jak je používat (s příklady)

  3. Vytváření logických svazků v Linuxu pomocí LVM

  1. Jak nainstalovat Jenkins pomocí Docker

  2. Pochopení svazků Docker

  3. Rozšiřte a zmenšete svazky pomocí správy disků

  1. Jak provést změny obrázku Docker s příklady

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

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