Bevezetés
Docker adatkötetek egy fontos koncepció az alkalmazások konténerizálása során. Ezen koncepció ismerete létfontosságú a konténerizált alkalmazás legjobb élményének biztosításához, valamint a megbízható perzisztencia és adatkezelés érdekében. Bár ez a koncepció fontos, sok fejlesztő számára zavaró és összetett is egyben. Fontos, hogy a fejlesztők és a DevOps szakemberek megértsék a Docker adatkötetek beállítását, helyes használatát, ismerjék a különböző kötettípusokat, és azt, hogy melyik típust válasszák az alkalmazásukhoz.
Ez az útmutató a Docker adatkötetek koncepciójának és használatának bemutatására összpontosít. Az útmutató elolvasása után elsajátítja a Docker adatkötetek bármely típusának beállítását és kezelését.
Előfeltételek
Az útmutató követéséhez a következőkre lesz szüksége:
- Ubuntu telepítve. Tekintse meg a Hogyan állítsa be Ubuntu 18.04 szerverét útmutatónkat gyors hivatkozásként.
- Ubuntu felhasználó sudo jogosultságokkal. Ez a lépés bonyolult lehet, különösen, ha nem ismeri a Linuxot. Olvassa el a A Linux Sudoers fájl konfigurálása című cikket a részletes útmutatóért.
- Docker telepítve az Ubuntun. A Docker Ubuntura történő telepítéséhez kövesse a Hogyan telepítsük & üzemeltessük a Dockert Ubuntun a nyilvános felhőben blogbejegyzésünket.
Bár ez az útmutató a Docker Ubuntun történő kezelésére összpontosít, docker parancsok minden olyan operációs rendszeren alkalmazhatók, amelyre telepítve van a Docker.
A Docker konténerek működésének megértése
A Docker adatkötetek teljes megértéséhez tudnia kell, hodyan működnek a Docker konténerek. Ebben a részben áttekintést nyújtunk az alapokról az új Docker-felhasználók számára. Ha tisztában van a Docker működésével, vagy tapasztalt Docker-felhasználó, kihagyhatja ezt a részt, és elkezdheti az adatkötetekkel való ismerkedést.
A Docker konténerek lehetővé teszik egy alkalmazás futtatását a gazda operációs rendszeren a Docker platform telepítésével. Mivel a Docker platform a gazda operációs rendszerre van telepítve, egy absztrakció jön létre a gazdagép és a vendégalkalmazás között. A virtuális gépekkel ellentétben a Docker konténer megosztja a Linux kernelét a gazda operációs rendszerrel. Mivel a Dockernek nincs szüksége további operációs rendszer telepítésére a gazdagépen, a Docker alkalmazások könnyűek és elérhetők minden olyan gazdagépen, amelyre a Docker telepítve van.
Mivel nincs további vendég operációs rendszer, a Docker platform megosztja az erőforrásokat a gazdagéppel. A Docker alkalmazás elindítása gyors, de a bonyolultság akkor jelentkezik, amikor meg kell osztani az erőforrásokat. A Docker nem rendelkezik saját memóriával vagy tárhellyel az adatok tartós megőrzéséhez. Ezeknek az erőforrásoknak a gazdagépről kell származniuk. A virtuális gépek használatához szokott emberek nehéznek találják az erőforrások megosztásának és kezelésének ezt a folyamatát. A megfelelő ismeretek hiánya váratlan és nem kívánt eredményekhez vezethet. Bár ez az útmutató feltételezi, hogy ismeri a Docker ökoszisztémát, nyugodtan olvassa el részletes útmutatónkat: Mi az a Docker? A Docker ökoszisztéma áttekintése egy gyors ismétlésért.
Adatok tartós megőrzése Docker adatkötetek használatával
Amikor a Dockerrel dolgozik, nem hozhat létre közvetlenül kötetet azon belül. Ezért az adatok tárolásához létre kell hoznunk egy Docker kötetkonténert, amelyhez egy kötet van csatolva. Ahhoz, hogy a Docker alkalmazásunkat összekapcsoljuk ezzel az adatkötet-konténerrel, a Docker --volume-from parancsát használjuk a konténer lekéréséhez és az alkalmazásunkhoz való csatolásához.
Lépésről lépésre végigmegyünk a folyamaton:
- Először hozzon létre egy új konténert, melynek neve
my-container az alábbi parancs futtatásával:
1docker create -v /tmp --name my-container ubuntu
Ez létrehoz egy új konténert a /tmp mappában. Szükség szerint módosíthatja a mappa könyvtárát. - Most, hogy az adatkonténere készen áll, írhat bele egy új Ubuntu konténer futtatásával a
--volume-from jelzővel, majd a
bash futtatásával. Bármi, amit a
tmp könyvtár a gazdagépünk
/tmp mappájába lesz mentve:
1docker run -t -i --volumes-from my-container ubuntu /bin/bash
A -t parancssori opció meghív egy terminált a konténeren belülről. A -i jelző interaktívvá teszi a kapcsolatot. Az Ubuntu konténer bash parancssorában hozzon létre egy fájlt a /tmp:
1echo "Some sample data" > /tmp/sample_file - Végül lépjen ki ebből a bash-ből a
exit parancs futtatásával. Ezután futtassa az alábbi parancsot:
1docker run -t -i --volumes-from my-container ubuntu /bin/bash
Meg fogja találni a sample_file fájlt ebben a könyvtárban. Nincs korlátozás a megadható kötetek számára vonatkozóan. Bármennyi kötetet hozzáadhat a --volumes-from jelző használatával. Emellett tetszőleges számú adat-kötet konténert is létrehozhat.
Adatok elérése a gazdagép és a Docker konténer között
A virtualizációban jártas olvasók számára ez az opció hasonló a virtuális gépek megosztott mappa opciójához. Itt ahelyett, hogy egy data-only konténert hoznánk létre, a Docker alkalmazásunkat egy Docker rendszerkép használatával futtatjuk, és felülírjuk annak egyik könyvtárát a gazdagép egy könyvtárának tartalmával.
Gyakori forgatókönyv a naplófájlok mentése a gazdagépre. Erre azért lehet szükség, hogy szükség szerint elemezhessük ezeket a fájlokat anélkül, hogy be kellene lépnünk a gépbe. Ebben a forgatókönyvben tegyük fel, hogy a Docker Nginx image használja, és a naplófájljait a gazdagépen szeretné tárolni. Az Nginx Docker rendszerkép a naplókat a /var/log/nginx könyvtárba írja, de ez a /var/log/nginx a Docker Nginx konténeren belül található. Így ez a hely nem érhető el a gazdagép számára.
Célunk eléréséhez létre kell hoznunk egy megosztott mappát a naplók tárolására a gazdagép és a Docker Nginx rendszerkép között. Az alábbiakban ezt a folyamatot mutatjuk be egy egyszerű, lépésről lépésre követhető útmutatóban:
- Először hozzon létre egy könyvtárat a gazdagépén, ahol a naplókat tárolni szeretné:
Ezután indítsa el a konténert az alábbi parancs futtatásával:1mkdir ~/my-nginxlogs
1docker run -d -v ~/my-nginxlogs:/var/log/nginx -p 5000:80 -i nginx
- Ez a
run parancs elfogad néhány argumentumot, ezért bontsuk le, hogy jobban megértsük:
- -p 5000:80: Porttovábbítás beállítása. Az Nginx konténer alapértelmezés szerint a 80 porton figyel, és ez leképezi az Nginx konténer 80 portját a gazdagép 5000 portjára.
- -d: Válassza le a folyamatot, és futtassa a háttérben.
- -v ~/my-nginxlogs:/var/log/nginx: Összekapcsoljuk a /var/log/nginx könyvtárat az Nginx konténeren belülről a gazdagép /my-nginxlogs könyvtárával. Ez a : választja el a gazdagép útvonalát a konténer útvonalától. Mindig a gazdagép útvonala áll az első helyen.
Most, hogy az Nginx konténerünk fut, először ellenőrizze, hogy az Nginx szerver kiszolgál-e a gazdagépünk 5000 portján a webböngésző megnyitásával és a következő URL futtatásával: http://localhost:5000. Amint megjelenik az üdvözlőoldal, az Nginx szerver készen áll, és naplókat hoz létre a /var/log/nginx mappájában.
Ha megnyitja a gazdagép /my-nginxlogs mappáját, itt láthatja a Docker Nginx konténerből származó naplófájlokat. Ha módosításokat végez a gazdagép /my-nginxlogs mappájában, miközben az Nginx konténer fut, a változások a konténer /var/log/nginx mappájában is tükröződni fognak.
Összegzés
Ebben az útmutatóban átfogó megközelítést alkalmaztunk a Docker adatkötetek (Data Volumes) megértéséhez. Megvizsgáltuk a kötetek létrehozását az alkalmazásához, az adatok megosztását a gazdagép és a Docker konténer között, az adattípusokat és az adatok tartósítását. Ez segíteni fog az adatok tartós megőrzésében a konténerizált alkalmazásaiban, valamint az alkalmazás állapotának és konfigurációjának kezelésében.
A Dockerrel kapcsolatos további ismeretekért tekintse meg a következő útmutatókat a blogunkon:
- Hogyan hosztoljunk Docker rendszerkép-tárolót és hogyan építsünk Docker rendszerképeket GitLab Self-Managed példánnyal Ubuntu 20.04-en
- Flask alkalmazás építése és telepítése Dockerrel Ubuntu 20.04 rendszeren
- Privát Docker Registry beállítása Ubuntu 18.04 rendszeren
- Hogyan osszunk meg adatokat egy Docker konténer és a gazdagép között
- Docker erőforrások tisztítása – képek, konténerek és kötetek
Kellemes számítógépezést!
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.