Learning Docker, 6. rész: Munka az adatokkal

A Dockerről szóló anyagsorozat fordításának mai részében az adatokkal való munkáról lesz szó. Főleg a Docker kötetekről. Ezekben az anyagokban folyamatosan összehasonlítottuk a Docker programozási mechanizmusokat különféle ehető analógiákkal. Ettől a hagyománytól itt nem térünk el. Legyenek a Dockerben lévő adatok fűszerek. Sokféle fűszer létezik a világon, és a Dockernek számos módja van az adatokkal való munkavégzésre.

1. rész: Az alapok
2. rész: kifejezések és fogalmak
3. rész: Docker-fájlok
4. rész: A képek méretének csökkentése és összeállításuk felgyorsítása
5. rész: parancsok
6. rész: adatokkal való munka

Learning Docker, 6. rész: Munka az adatokkal

Felhívjuk figyelmét, hogy ez az anyag a Docker motor 18.09.1-es verziójával és API-verziójával készült 1.39.

A Dockerben lévő adatok ideiglenesen vagy véglegesen tárolhatók. Kezdjük az ideiglenes adatokkal.

Ideiglenes adattárolás

Kétféleképpen kezelheti az ideiglenes adatokat a Docker-tárolókban.

Alapértelmezés szerint a tárolóban futó alkalmazás által létrehozott fájlok egy írható tárolórétegben tárolódnak. Ahhoz, hogy ez a mechanizmus működjön, semmi különöset nem kell konfigurálni. Olcsónak és vidámnak bizonyul. Az alkalmazásnak egyszerűen el kell mentenie az adatokat, és folytatnia kell a saját dolgát. A konténer megszűnése után azonban az ilyen egyszerű módon mentett adatok is eltűnnek.

Az ideiglenes fájltárolás a Dockerben egy másik megoldás, amely olyan esetekre alkalmas, amikor magasabb szintű teljesítményre van szükség, mint ami a szabványos ideiglenes adattárolási mechanizmussal elérhető. Ha nincs szüksége arra, hogy adatait hosszabb ideig tárolják, mint a tároló, csatlakozhat a tmpfs tárolóhoz – egy ideiglenes információtárolóhoz, amely a gazdagép RAM-ját használja. Ez felgyorsítja az adatírási és -olvasási műveletek végrehajtását.

Gyakran előfordul, hogy az adatokat a tároló megszűnése után is tárolni kell. Ehhez állandó adattárolási mechanizmusokra van szükségünk.

Állandó adattárolás

Kétféleképpen lehet meghosszabbítani az adatok élettartamát a tároló élettartamánál. Az egyik lehetőség a bind mount technológia alkalmazása. Ezzel a megközelítéssel például egy valós mappát csatlakoztathat a tárolóhoz. A Dockeren kívüli folyamatok is képesek lesznek dolgozni egy ilyen mappában tárolt adatokkal. így néz tmpfs mount és bind mount technológia.

Learning Docker, 6. rész: Munka az adatokkal
A tmpfs és a bind mount felszerelése

A bind mount technológia használatának hátránya, hogy használata bonyolítja az adatmentést, az adatmigrációt, az adatmegosztást több konténer között. Sokkal jobb Docker-köteteket használni az állandó adattároláshoz.

Kötetek Docker

A kötet olyan fájlrendszer, amely a gazdagépen található a tárolókon kívül. A köteteket a Docker hozza létre és kezeli. Íme a Docker-kötetek főbb tulajdonságai:

  • Ezek az információk állandó tárolásának eszközei.
  • Függetlenek és el vannak választva a tartályoktól.
  • Különböző konténerek között megoszthatók.
  • Lehetővé teszik az adatok hatékony olvasásának és írásának megszervezését.
  • A kötetek elhelyezhetők egy távoli felhőszolgáltató erőforrásain.
  • Ezek titkosíthatók.
  • Nevet lehet adni nekik.
  • A tároló gondoskodhat a kötet előzetes adatokkal történő feltöltéséről.
  • Kényelmesek a teszteléshez.

Amint láthatja, a Docker kötetek csodálatos tulajdonságokkal rendelkeznek. Beszéljünk arról, hogyan hozhatjuk létre őket.

Kötetek létrehozása

A kötetek Docker vagy API kérésekkel hozhatók létre.

Itt található egy utasítás a Dockerfile-ban, amely lehetővé teszi kötet létrehozását egy tároló indításakor.

VOLUME /my_volume

Ha hasonló utasítást használ, a Docker a tároló létrehozása után létrehoz egy kötetet, amely tartalmazza a megadott helyen már meglévő adatokat. Vegye figyelembe, hogy ha egy kötetet Docker-fájl használatával hoz létre, az nem mentesíti Önt a kötet csatlakoztatási pontjának megadása alól.

Köteteket is létrehozhat Docker-fájlban a JSON formátum használatával.

Ezenkívül a kötetek létrehozhatók parancssori eszközökkel, miközben a tároló fut.

A kötetek kezelése a parancssorból

▍ kötet létrehozása

Önálló kötetet a következő paranccsal hozhat létre:

docker volume create —-name my_volume

▍Tudjon meg információkat a kötetekről

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

docker volume ls

Egy adott kötetet így fedezhet fel:

docker volume inspect my_volume

▍Kötet törlése

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

docker volume rm my_volume

A tárolók által nem használt összes kötet eltávolításához a következő parancsot használhatja:

docker volume prune

A kötetek törlése előtt a Docker megkéri, hogy erősítse meg ezt a műveletet.

Ha egy kötet egy tárolóhoz van társítva, a kötet nem törölhető mindaddig, amíg a megfelelő tárolót nem törli. Ugyanakkor, még ha a tartályt eltávolítják is, a Docker nem mindig érti ezt. Ha ez megtörténik, használhatja a következő parancsot:

docker system prune

Úgy tervezték, hogy megtisztítsa a Docker-erőforrásokat. A parancs végrehajtása után képesnek kell lennie arra, hogy törölje azokat a köteteket, amelyek állapota korábban hibás volt.

A --mount és --volume jelzők

A kötetek kezeléséhez a parancs meghívásakor docker, gyakran kell zászlókat használnod. Például egy kötet létrehozásához a tároló létrehozása során használhatja ezt a konstrukciót:

docker container run --mount source=my_volume, target=/container/path/for/volume my_image

Az ókorban (2017-ig) a zászló népszerű volt --volume. Kezdetben ez a zászló (rövidítve is használható, aztán úgy néz ki -v) önálló konténerekhez és a zászlóhoz használták --mount - Docker Swarm környezetben. Azonban a Docker 17.06-tól a zászló --mount bármilyen forgatókönyvben használható.

Meg kell jegyezni, hogy a zászló használatakor --mount a parancsban megadandó további adatok mennyisége nő, de több okból is jobb ezt a jelzőt használni, és nem --volume. Zászló --mount az egyetlen olyan mechanizmus, amely lehetővé teszi a szolgáltatásokkal való együttműködést vagy a kötet illesztőprogram-beállításainak megadását. Ezenkívül ezzel a zászlóval könnyebb dolgozni.

A Docker adatkezelési parancsok meglévő példáiban számos példát láthat a jelző használatára -v. Amikor megpróbálja adaptálni ezeket a parancsokat saját magának, ne feledje, hogy a zászlók --mount и --volume különböző paraméterformátumokat használjon. Vagyis nem lehet egyszerűen lecserélni -v on --mount és szerezz egy működő csapatot.

A fő különbség a között --mount и --volume hogy a zászló használatakor --volume az összes paraméter egy mezőben van összegyűjtve, és használat közben --mount a paraméterek el vannak választva.

Amikor dolgozik --mount paraméterek kulcs-érték párokként vannak ábrázolva, vagyis úgy néz ki key=value. Ezeket a párokat vesszővel választjuk el. Itt vannak a gyakran használt lehetőségek --mount:

  • type - rögzítés típusa. A megfelelő kulcs értéke lehet kötődik, kötet vagy tmpfs. Itt kötetekről van szó, vagyis minket az érték érdekel volume.
  • source - mount forrás. Elnevezett kötetek esetén ez a kötet neve. Névtelen köteteknél ez a kulcs nincs megadva. Le lehet rövidíteni src.
  • destination - az elérési út, amelyhez a fájl vagy mappa a tárolóba van csatolva. Ez a kulcs rövidíthető dst vagy target.
  • readonly - a kívánt kötetet rögzíti csak olvasásra. Ennek a kulcsnak a használata nem kötelező, és nincs hozzárendelve érték.

Itt van egy példa a felhasználásra --mount sok lehetőséggel:

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

Eredményei

Íme néhány hasznos parancs, amelyet a Docker-kötetekkel való munka során használhat:

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

Itt található a leggyakrabban használt opciók listája --mount, amely az űrlap parancsában alkalmazható docker run --mount my_options my_image:

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

Most, hogy befejeztük ezt a Docker-sorozatot, ideje néhány szót szólni arról, hogy a Docker-tanulók merre indulhatnak tovább. Itt jó cikk a Dockerről. Itt egy könyv a Dockerről (a könyv megvásárlásakor próbálja megszerezni a legújabb kiadást). Itt egy újabb könyv azoknak, akik szerint a gyakorlat a legjobb módja a technológia elsajátításának.

Kedves olvasók! Milyen Docker anyagokat ajánlana kezdőknek tanulni?

Learning Docker, 6. rész: Munka az adatokkal

Forrás: will.com

Hozzászólás