GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak sdílet data mezi kontejnery Docker

Úvod

Docker umožňuje uživatelům spouštět různé aplikace izolované od hostitelského počítače, aniž by pro ně museli mít samostatné operační systémy. Místo toho nainstalujete a spravujete kontejnery Docker pomocí kontejnerového jádra (démon Docker), který má podobnou roli jako hypervizor pro virtuální počítače.

Jakmile začnete Docker používat, budete čelit situacím, kdy potřebujete vědět,jak sdílet data mezi kontejnery.

Předpoklady

  • Uživatel s právy sudo
  • Přístup k terminálu/příkazovému řádku
  • Stabilní verze Dockeru

Krok 1:Vytvořte kontejner s objemem dat

Chcete-li předvést, jak sdílet mezi dvěma kontejnery, musíte vytvořit kontejner (Container1 ) s objemem dat (datavolume1 ) můžete později sdílet.

1. Nejprve vytvořte nezávislý svazek, který budete sdílet mezi dvěma kontejnery Docker:

docker volume create --name DataVolume1

2. Poté vytvořte kontejner Docker a pojmenujte jej Container1 s připojeným datovým objemem spuštěním následujícího příkazu:

docker run -ti --name=Container1 -v DataVolume1:/datavolume1 ubuntu

2. Dále vytvořte soubor v datovém svazku a přidejte do něj nějaký text:

echo "Share this file between containers" > /datavolume1/Example.txt

3. Opusťte kontejner příkazem:exit

Krok 2:Vytvořte nový kontejner a přidejte jej do objemu dat

Dále vytvořte nový kontejner (Container2 ) který bude sdílet soubory s Container1 .

1. Vytvořte Kontejner2 a připojte svazky z Container1 :

docker run -ti --name=Container2 --volumes-from Container1 ubuntu

2. Přidejte text z Kontejneru2 ukázat, že oba kontejnery mohou zapisovat do DataVolume1 :

echo "This will also appear in DataVolume1" >> /datavolume1/Example.txt

3. Chcete-li opustit Kontejner2 použijte příkaz:exit

Krok 3:Ověřte, že můžete sdílet data mezi kontejnery Docker

1. Restartujte Container1 pro kontrolu změn objemu dat:

docker restart Container1

2. Potvrďte, že oba kontejnery mohou číst a zapisovat do stejného objemu dat a že text, který jste napsali do Container2 se zobrazí v DataVolume1 :

cat /datavolume1/Example.txt

Pokud byl text úspěšně přidán do datového svazku, výstup by měl zobrazovat následující:

Share this file between containers
This will also appear in DataVolume1

3. Pro dokončení opusťte kontejner pomocí příkazu:exit

Volitelné:Vytvořte svazky pouze pro čtení

Vytvoření kontejneru Docker „pouze pro čtení“ zabrání ostatním v provádění jakýchkoli změn v datech a umožňuje jim pouze prohlížet soubory.

Přidejte :ro na název kontejneru, který by měl být sdílen, ale neměl by se měnit.

V následujícím příkladu Container2 bude moci vidět soubory z Kontejneru1 ale nebude je moci upravovat.

docker run -ti --name=Container2 --volumes-from Container1:ro ubuntu

Chcete-li zkontrolovat, zda Kontejner2 má oprávnění pouze pro čtení, zkuste odebrat ukázkový soubor z Kontejneru1 spuštěním příkazu:

rm /datavolume1/Example.txt

Výstup by měl ukazovat, že jste úspěšně vytvořili soubor pouze pro čtení. V důsledku toho mohou ostatní kontejnery přistupovat k datům a zobrazovat je, ale nemohou je nijak přispívat ani je měnit.


Ubuntu
  1. Jak sdílet data mezi kontejnery Docker na Ubuntu 22.04

  2. Jak používat Docker Compose

  3. Jak odstranit všechny kontejnery Docker

  1. Jak připojit kontejnery Docker

  2. Jak předávat proměnné prostředí do kontejnerů Docker

  3. Jak sdílet data mezi kontejnery Docker

  1. Jak vypsat / spustit / zastavit kontejnery Docker

  2. Co je Docker?

  3. Jak vypsat Docker kontejnery