Vlastnosti Docker Volumes
- Sdílení objemových dat a úložiště mezi více kontejnery a hostitelskými souborovými systémy.
- Oddělení kontejnerů od skladování.
- Při mazání kontejneru neodstraní obsažená data.
- Snadno zálohujte, obnovujte a migrujte data.
V tomto kurzu vysvětlíme, co je svazek Dockeru a jak jej používat, stejně jako způsob připojení svazku v Dockeru.
Požadavky
- Systém se systémem Linux s nainstalovaným Dockerem.
- Je nakonfigurováno heslo uživatele root.
Základní syntaxe svazku Docker
Chcete-li zobrazit všechny dostupné možnosti svazku, můžete použít příkaz „docker volume“:
docker volumePo zadání výše uvedeného příkazu byste měli vidět následující výstup:
Použití: docker volume COMMANDSpráva svazků
Příkazy:
vytvořit Vytvořit svazek
inspect Zobrazit podrobné informace o jednom nebo více svazcích
Je seznam svazků
prořezat Odebrat všechny nepoužívané místní svazky
rm Odeberte jeden nebo více svazků
Spuštěním příkazu „docker volume COMMAND --help“ získáte další informace o příkazu.
Vytvořte svazek
Chcete-li vytvořit datový svazek, budete nejprve muset vytvořit datový svazek na hostiteli Docker a připojit svazek ke kontejneru.
Svazek Docker můžete vytvořit pomocí příkazu „docker volume create.„Například pomocí následujícího příkazu vytvořte nový svazek Dockeru s názvem myvolume:
docker volume create myvolumeMěli byste vidět následující výstup:
můj objemSvůj stávající svazek můžete zobrazit pomocí následujícího příkazu:
docker volume lsMěli byste vidět následující výstup:
JMÉNO OBJEMU ŘIDIČEmístní c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
místní objem
Pokud chcete zobrazit více informací o svazku, spusťte následující příkaz:
ukotvitelný panel zkontrolovat můj objemPo spuštění výše uvedeného příkazu byste měli získat následující výstup:
["CreatedAt": "2020-09-12T04: 51: 31Z",
"Driver": "local",
"Štítky": ,
"Mountpoint": "/ var / lib / docker / volume / myvolume / _data",
"Name": "myvolume",
„Možnosti“: ,
"Scope": "local"
]
Připojte svazek
V tomto okamžiku máte jeden svazek s názvem myvolume. V tomto příkladu vytvoříte kontejner a připojíte k němu myvolume.
K připojení svazku můžete použít volbu -mount. Níže je uvedena základní syntaxe pro připojení svazku ke kontejneru:
docker run --mount source = název-svazku, cíl = cesta-uvnitř-kontejneru docker-imagesChcete-li například vytvořit kontejner Ubuntu a připojit myvolume ke kontejneru, spusťte následující příkaz:
docker run -it --name = volumecontainer --mount source = myvolume, destination = / data ubuntuTento příkaz vytáhne obraz Ubuntu z Docker Hubu, spustí kontejner v interaktivním režimu s názvem volumecontainer a připojí kontejner myvolume do / data v adresáři / data:
Nelze najít obrázek 'ubuntu: latest' místněnejnovější: Stahování z knihovny / ubuntu
54ee1f796a1e: Pull dokončen
f7bfea53ad12: Pull dokončen
46d371e02073: Pull dokončen
b66c17bbf772: Pull dokončen
Přehled: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Stav: Stažený novější obrázek pro ubuntu: nejnovější
root @ 06a477c4e444: / #
Připojený svazek můžete zkontrolovat pomocí následujícího příkazu:
[chráněno e-mailem]: / # lsDatový adresář byste měli vidět v následujícím výstupu:
bin boot data dev atd. home lib lib32 lib64 libx32 media mntopt proc root spustit sbin srv sys tmp usr var
Nyní vytvoříme ukázkový soubor s názvem file.txt inside / data directory s následujícím příkazem:
echo "Toto je testovací soubor!"> / data / soubor.txtUkončete z kontejneru pomocí následujícího příkazu:
výstupSpusťte stejný kontejner znovu pomocí následujícího příkazu:
docker container start volumecontainerDále připojte spuštěný kontejner pomocí následujícího příkazu:
docker exec -it volumecontainer / bin / bashZkontrolujte, zda váš soubor.txt je trvalý s následujícím:
kočičí data / soubor.txtPo zadání výše uvedeného příkazu byste měli získat následující výstup:
Toto je testovací soubor!
Sdílejte data mezi kontejnery
Pomocí svazku Docker můžete také sdílet data mezi více kontejnery.
Jak víte, vytvořili jsme svazek s názvem myvolume nový kontejner s názvem volumecontainer pomocí tohoto svazku. Také jsme vytvořili soubor s názvem file.txt uvnitř svazku.
Nyní vytvoříme další kontejner s názvem volumecontainer1 se stejným objemem myvolume pomocí následujícího příkazu:
docker run -it --name = volumecontainer1 --mount source = myvolume, destination = / data ubuntuSpusťte příkaz ls, jak je znázorněno níže:
jeDatový adresář byste měli vidět v následujícím výstupu:
bin boot data dev atd. home lib lib32 lib64 libx32media mnt opt proc root run sbin srv sys tmp usr var
Spusťte následující příkaz pro kontrolu souboru.txt:
kočka / data / soubor.txtMěli byste vidět stejný obsah, který jste vytvořili v předchozím kontejneru:
Toto je testovací soubor!
Připojit adresář jako svazek
Adresář umístěný uvnitř hostitelského systému Docker můžete použít jako svazek a připojit jej ke kontejneru. K dosažení stejného výsledku můžete také použít volbu -v, jak je znázorněno níže:
docker run -v "název_adresáře": název_objemu docker_imageVytvořte adresář s názvem / data uvnitř hostitele Dockeru pomocí následujícího příkazu:
mkdir / DataDále vytvořte některé soubory v adresáři / Data:
cd / Datadotykový soubor1.soubor txt2.soubor txt3.txt
Vytvořte nový kontejner pomocí adresáře / Data jako svazku pomocí následujícího příkazu:
docker run -it --name = data1 -v / Data: / Data ubuntuTento příkaz vytvoří nový kontejner a připojí svazek s názvem / Data.
Spuštěním následujícího příkazu zkontrolujte obsah adresáře / Data:
ls -l / Data /Měli byste vidět všechny soubory, které jsme dříve vytvořili v hostitelském systému, jak je uvedeno níže:
celkem 0-rw-r - r-- 1 root root 0 Sep 12 05:41 file1.txt
-rw-r - r-- 1 root root 0 Sep 12 05:41 file2.txt
-rw-r - r-- 1 root root 0 Sep 12 05:41 file3.txt
Odebrat Docker Volume
Svazek můžete snadno odstranit nebo odebrat pomocí následující syntaxe:
docker volume rm název-svazkuChcete-li například odebrat svazek s názvem myvolume, spusťte následující příkaz:
docker volume rm myvolumeMěla by se zobrazit následující chyba:
Chybová odpověď od démona: odebrat můj objem:svazek se používá - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]
Je to proto, že váš objem používá kontejner. Před odstraněním svazku tedy budete muset zastavit a vyjmout nádobu.
Chcete-li kontejner zastavit a odebrat, spusťte následující příkaz:
docker kontejner zastavit volumecontainer volumecontainer1docker kontejner rm volumecontainer volumecontainer1
Nyní můžete hlasitost snadno odebrat.
Závěr
Ve výše uvedeném průvodci jste zjistili, co je objem Dockeru, jak jej vytvořit a jak jej připojit uvnitř kontejneru. Také jste se naučili, jak sdílet data mezi více kontejnery pomocí svazku.