Docker tanulmányozása, 6. rész: adatok kezelése

A mai részben a Docker anyagok fordítási sorozatában az adatok kezeléséről fogunk beszélni. Különösen a Docker kötetekről. Ezekben az anyagokban folyamatosan összehasonlítottuk a Docker szoftveres mechanizmusait különböző ehető analógiákkal. Ne térjünk el ettől a hagyománytól itt sem. Az adatok a Dockerben legyenek fűszerek. A világ számos fűszerfajtával rendelkezik, és a Dockerben is sokféle módon dolgozhatunk az adatokkal.

→ 1. rész: alapok
→ 2. rész: kifejezések és koncepciók
→ 3. rész: Dockerfile fájlok
→ 4. rész: a képek méretének csökkentése és a buildelés felgyorsítása
→ 5. rész: parancsok
→ 6. rész: adatok kezelése

Docker tanulmányozása, 6. rész: adatok kezelése

Felhívjuk figyelmét, hogy ezt az anyagot a Docker 18.09.1-es verziójával és az API verzióval készítették. 1.39.

A Dockerben az adatok ideiglenesen vagy tartósan tárolhatók. Kezdjük az ideiglenes adatokkal.

Ideiglenes adat tárolás

A Docker konténerekben az ideiglenes adatok kezelésére két lehetőség van.

Alapértelmezés szerint a konténerben futó alkalmazás által létrehozott fájlok a konténer írásra képes rétegében tárolódnak. Ahhoz, hogy ez a mechanizmus működjön, semmit nem kell külön beállítani. Olcsón és egyszerűen megoldható. Az alkalmazásnak csak annyit kell tennie, hogy elmenti az adatokat, és folytatja a dolgait. Azonban miután a konténer megszűnik létezni, az így tárolt adatok is eltűnnek.

Az ideiglenes fájlok tárolásához a Dockerben van még egy megoldás, amely a standard ideiglenes tárolási mechanizmushoz képest magasabb teljesítményigényt kielégít. Ha nem kell, hogy az adatai tovább éljenek, mint a konténer, csatlakoztathat egy tmpfs-t a konténerhez - ideiglenes adattárolót, amely a gazda operatív memóriáját használja. Ez felgyorsítja az adatok írási és olvasási műveleteit.

Gyakran előfordul, hogy az adatokat tárolni kell, miután a konténer megszűnik létezni. Ehhez szükségünk lesz a tartós adatok tárolásának mechanizmusaira.

Folyamatos adatmentés

Két módszer létezik, amelyekkel a adatok élettartama meghosszabbítható a konténer élettartamához képest. Az egyik módszer a bind mount technológia használata. Ilyen megközelítéssel a konténerhez például egy valós mappa csatolható. Az ilyen mappában tárolt adatokkal azok a folyamatok is dolgozhatnak, amelyek a Docker-en kívül futnak. Íme, hogyan néznek ki a tmpfs csatolás és a bind mount technológia.

Docker tanulmányozása, 6. rész: adatok kezelése
Tmpfs csatolása és bind mount

A bind mount technológia használatának hátránya, hogy bonyolítja az adatok biztonsági mentését, az adatok migrálását és az adatok több konténer általi megosztását. Sokkal jobb állandó adatok tárolására a Docker kötetek használata.

Docker kötetek

A kötet egy olyan fájlrendszer, amely a gazdagépen található a konténereken kívül. A kötetek létrehozása és kezelése a Docker feladata. Íme a Docker kötetek fő jellemzői:

  • Különálló tárolási megoldások az információk számára.
  • Önállóak és elkülönültek a konténerektől.
  • Különböző konténerek közösen használhatják őket.
  • Lehetővé teszik az adatok hatékony olvasását és írását.
  • A köteteket tárolhatjuk távoli felhőszolgáltatók erőforrásaiban.
  • Titkosíthatók.
  • Nevezhetők.
  • A konténer előre feltöltheti a kötetet adatokkal.
  • Jól használhatók teszteléshez.

Ahogy láthatja, a Docker kötetek nagyszerű tulajdonságokkal rendelkeznek. Beszéljünk arról, hogyan lehet őket létrehozni.

Kötetek létrehozása

A köteteket a Docker eszközeivel vagy API-lekérdezések segítségével lehet létrehozni.

Itt egy Dockerfile utasítás, amely lehetővé teszi egy kötet létrehozását a konténer indítása során.

VOLUME /my_volume

Ilyen utasítás használatával a Docker létrehoz egy kötetet, amely tartalmazza az adott helyen már meglévő adatokat, miután létrehozza a konténert. Vegye figyelembe, hogy ha Dockerfile-t használ egy kötet létrehozásához, ez nem mentesít a kötet csatolási pontjának megadásának szükségessége alól.

Köteteket a Dockerfile-ban JSON formátumban is lehet létrehozni.

Emellett köteteket parancssoron is létrehozhatunk a konténer futása közben.

Kötetek kezelése parancssorból

▍Kötet létrehozása

Önálló kötetet a következő parancs segítségével hozhat létre:

docker volume create --name my_volume

▍Információk megszerzése a kötetekről

A Docker kötetek listájának megtekintéséhez használja a következő parancsot:

docker volume ls

Egy konkrét kötetet így vizsgálhat meg:

docker volume inspect my_volume

▍Kötet törlése

A kötetet így törölheti:

docker volume rm my_volume

Törölheti az összes olyan kötetet, amelyet nem használnak konténerek, a következő parancs segítségével:

docker volume prune

A Docker törlés előtt megerősítést fog kérni az eljárás végrehajtásához.

Ha a kötet bármely konténerhez kapcsolódik, azt nem lehet törölni, amíg a megfelelő konténert el nem távolítják. Emellett, még ha a konténer törölve is lett, a Docker ezt nem mindig érti. Ha ez megtörténik, használhatja a következő parancsot:

docker system prune

Ez a Docker erőforrások tisztítására szolgál. E parancs végrehajtása után lehetősége kell legyen a kötetek törlésére, amelyek státusza korábban tévesen lett meghatározva.

A —mount és a —volume kapcsolók

A kötetek kezeléséhez, amikor a parancsot hívja meg, gyakran használnia kell a kapcsolókat. Például, hogy kötetet hozzon létre a konténer létrehozásakor, használhatja a következő syntaxist: dockerdocker container run --mount source=my_volume, target=\/container\/path\/for\/volume my_image

Régen (2017 előtt) a —volume kapcsoló volt a közkedvelt.

Ez a kapcsoló (azt is lehet rövidíteni, ekkor így néz ki ) eredetileg önálló konténerekhez készült, míg a —mount kapcsoló a Docker Swarm környezetben használatos. Azonban a Docker 17.06-tól kezdve a kapcsolót bármilyen forgatókönyvben lehet alkalmazni.Meg kell jegyezni, hogy a —mount kapcsoló használatakor megnő a parancsban megadandó kiegészítő adatok mennyisége, de több okból is jobb ezt a kapcsolót használni, mint a -v— ez az egyetlen mechanizmus, amely lehetővé teszi a szolgáltatásokkal való munkát vagy a kötet meghajtó paramétereinek megadását. Ezen kívül e kapcsolóval könnyebb dolgozni. A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a kapcsoló használatára. Ezeknek a parancsoknak a saját igényeihez való alkalmazásakor vegye figyelembe, hogy a kapcsolók különböző paraméterformátumokat használnak. Vagyis nem lehet egyszerűen a A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a helyettesítésével működő parancsot kapni.

A fő különbség a A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a kapcsolók között abban rejlik, hogy a —mount kapcsoló használatakor az összes paraméter egy helyen, egy mezőben gyűlik össze, míg a ) eredetileg önálló konténerekhez készült, míg a —mount kapcsoló a Docker Swarm környezetben használatos. Azonban a Docker 17.06-tól kezdve a kapcsolót bármilyen forgatókönyvben lehet alkalmazni.. A jelző A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a kapcsoló használatakor

a paraméterek külön állnak. -v. Amikor ezeket a parancsokat próbálja meg adaptálni, vegye figyelembe, hogy a zászlók A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a és ) eredetileg önálló konténerekhez készült, míg a —mount kapcsoló a Docker Swarm környezetben használatos. Azonban a Docker 17.06-tól kezdve a kapcsolót bármilyen forgatókönyvben lehet alkalmazni. különböző paraméterformátumokat használnak. Tehát nem lehet egyszerűen -v Gyorsan emlékezzünk vissza, hogyan működik a moduláris aritmetika. Az óra már egy ismert koncepció. Az órák használata A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a csak így kicserélni, és működő parancsot kapni.

A fő különbség A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a és ) eredetileg önálló konténerekhez készült, míg a —mount kapcsoló a Docker Swarm környezetben használatos. Azonban a Docker 17.06-tól kezdve a kapcsolót bármilyen forgatókönyvben lehet alkalmazni. abban rejlik, hogy a zászló használatakor ) eredetileg önálló konténerekhez készült, míg a —mount kapcsoló a Docker Swarm környezetben használatos. Azonban a Docker 17.06-tól kezdve a kapcsolót bármilyen forgatókönyvben lehet alkalmazni. az összes paraméter egy mezőben gyűlik össze, míg a használatakor A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a A paraméterek elválasztva.

A A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a A paraméterek kulcs-érték párokként jelennek meg, nevezetesen, így néz ki key=value. Ezek a párok vesszővel vannak elválasztva. Íme a gyakran használt paraméterek A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a:

  • type — a csatolás típusa. A megfelelő kulcshoz tartozó érték lehet bind, volume vagy tmpfs. Itt a kötetekről beszélünk, azaz az értékeink érdeklik volume.
  • forrás — a csatolt forrás. Nevezett kötetek esetén ez a kötet neve. Nevezetlen köteteknél ezt a kulcsot nem adjuk meg. Rövidíthető src.
  • rendelkezés — az az útvonal, ahol a fájl vagy mappa a konténerben csatlakozik. Ez a kulcs is rövidíthető dst vagy target.
  • readonly — egy kötetet csatlakoztat, amely célja csak olvasásra. E kulcs használata nem kötelező, értéket nem kap.

Íme egy példa használatra A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a sok paraméterrel:

docker run --mount type=volume,source=volume_name,destination=\/path\/in\/container,readonly my_image

Összegzés

Íme néhány hasznos parancs, amelyeket használhatunk Docker kötetekkel:

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

Íme a gyakran használt paraméterek listája A Dockerben való adatokkal való munkavégzésre irányuló parancsokban számos példát találhat a, amelyeket a következő parancsban alkalmazhatunk docker run --mount my_options my_image:

  • type=volume
  • source=volume_name
  • destination=\/path\/in\/container
  • readonly

Most, hogy befejeztük ezt a Docker-ról szóló sorozatot, itt az ideje, hogy néhány szót mondjunk arról, merre tovább érdeklődjenek, akik Docker-t tanulnak. Íme egy nagy és hasznos cikk Docker-ról. Íme egy könyv Docker-ról (ha ezt a könyvet megvásárolja, próbáljon meg a legfrissebb kiadást beszerezni). Íme még egy könyv, amely megfelel azoknak, akik úgy vélik, hogy a gyakorlat a legjobb módja a technológiák elsajátításának.

Használjátok a CI/CD technológiákat a projektjeitekben? Milyen anyagokat ajánlana Docker-t tanuló újoncoknak?

Docker tanulmányozása, 6. rész: adatok kezelése

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster