A dockerizáció újradefiniálta a telepítési és automatizálási folyamatokat a szoftveriparban. Megalakulása óta a Docker csapat folyamatosan arra törekszik, hogy zökkenőmentessé tegye az automatizált telepítést. A konténerizációs technológia nemcsak gyors alkalmazásfejlesztést és hatékonyságot tesz lehetővé, hanem időt és komoly erőfeszítéseket is megtakarít. Az olyan verhetetlen funkciók, mint a többkonténeres alkalmazások összehangolása, meghatározása és futtatása, együttesen teszik a Dockert a fejlesztők kedvenc választásává.
Docker konténerek és képek
Ahogy mélyebbre ásol a Docker megértésében, elengedhetetlen az alapok felfrissítése. A Docker működésének megértése trükkös lehet, ha még nincs tapasztalatod vele. Ebben a részben meghatározunk néhány olyan fogalmat, amelyek elengedhetetlenek a kezdők számára. Ha úgy gondolod, hogy ismered ezeket a fogalmakat, nyugodtan ugord át, és lépj tovább a következő részre. Megtekintheted a átfogó útmutatónkat is, amely elmagyarázza a Docker alapvető fogalmait.
-
Docker képek
A Docker képek (images) írásvédett fájlok gyűjteményei. Miután létrehoztál egy Docker képet, nem módosíthatod azt, bár a törlése engedélyezett. A Docker képeket arra használjuk, hogy igényeink szerint egy vagy több Docker konténert hozzunk létre belőlük. A rendszerben futó képek számának ellenőrzéséhez használd a következő parancsot:
|
1 |
$docker images |
Amikor képeket töltesz le egy távoli regiszterből, mint például a Docker Hub, fájlokat és mappákat töltesz le. Egy kép letöltéséhez használd a következő parancsot:
|
1 |
$docker pull (képof neveimage) |
-
Docker konténerek
A Docker képek a Docker konténerek tervrajzai. Technikailag egy Docker konténer egy Docker kép egy példánya. Képzeld el úgy, hogy ha a Docker kép olyan, mint a szülő, akkor a Docker konténer a gyermek. Ellentétben a Docker képekkel, amelyeket egyszer hozol létre, egyetlen képből több konténert is létrehozhatsz. A rendszerben futó képek listájának ellenőrzéséhez használd a következő parancsot:
|
1 |
$docker ps |
Egy konténer letöltéséhez használd a következő parancsot:
|
1 |
$docker pull (konténerof nevecontainer) |
-
Hogyan működnek a Docker képek és konténerek
A Docker képek és konténerek kéz a kézben működnek, hogy felszabadítsák a Dockerben rejlő lehetőségeket. Egyetlen konténer a Docker képből épül fel a run parancs segítségével. Amikor létrehozol egy Docker konténert, egy új réteg jön létre, amelyet konténerrétegnek (Container Layer) neveznek. Az újonnan létrehozott réteg tartalmazza az alkalmazást és annak függőségeit. Minden általad létrehozott konténernek más-más írható/olvasható konténerrétege van, és a Docker konténerben végrehajtott változtatások automatikusan tükröződnek a konténerrétegen. Ne feledd, ha a konténer törlése mellett döntesz, a konténerréteget is elveszíted.
Köszöntsd a Docker Compose-t
Docker Compose egy konténerkezelő eszköz, amellyel az összes Docker konténeredet egyetlen YAML fájlba konfigurálhatod és hangolhatod össze. A konténerek indítása, leállítása, valamint a konténerek közötti kapcsolatok és kötetek létrehozása mind egyszerűbbé válik ezzel az eszközzel.
-
Mit csinál a Docker Compose?
Egyszerűen fogalmazva, a Docker Compose megkönnyíti a bonyolult feladatokat azáltal, hogy kiküszöböli a konfliktusokat és a szervezési problémákat. Lehetővé teszi a felhasználók számára a különböző Docker konténerek központi kezelését. Más szóval, ahelyett, hogy az összes szolgáltatás egyetlen nagy konténerben lenne, a Docker Compose több szolgáltatásra bontja le a szolgáltatást, így a felhasználók könnyedén elérhetik és kezelhetik azokat.
Ebben az útmutatóban végigvezetünk a Docker Compose jelenlegi verziójának telepítési lépésein a többkonténeres alkalmazások kezeléséhez CentOS 7 rendszeren. Áttekintünk néhány alapvető parancsot is, amelyekre szükséged lesz a szoftver sikeres használatához.
-
Hogyan használjuk a Docker Compose-t
A Docker Compose használata rendkívül egyszerű, még a kezdők számára is. Lássuk a Docker Compose háromlépéses folyamatát:
1. Felépítés: Először építsd fel a képeket a Dockerfile-ban a projekt igényeinek megfelelően, vagy töltsd le őket a regiszterből.
2. Meghatározás: Ezután meg kell határoznod az összes összetevő-szolgáltatást a compose.yml fájlban.
3. Futtatás: Az összetevők meghatározása után itt az ideje a futtatásnak a docker-compose paranccsal.
Előfeltételek
Mielőtt továbblépnénk a Docker Compose CentOS szerverére történő telepítésével, győződjön meg arról, hogy rendelkezik a következőkkel:
- Egy nem-root felhasználó sudo hozzáféréssel egy CentOS 7 szerveren.
- Telepített Docker a gépén. Kérjük, olvassa el ezt az útmutatót arról, hogyan kell telepíteni és működtetni a Dockert Ubuntu 18.04-en.
Most már minden készen áll. Ezután kövesse az alábbi lépéseket a Docker Compose CentOS 7-re történő telepítéséhez.
1. lépés: A Docker Compose telepítése
A Docker Compose legújabb verziójának beszerzéséhez kövesse a Docker dokumentációban található utasításokat, és töltse le a binárisokat a Docker’s GitHub repozitóriumából. Ellenőrizze, hogy a szoftver legfrissebb verziójával rendelkezik-e az alábbi parancs futtatásával:
|
1 |
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
A bináris futtathatóságához állítsa be az alábbi jogosultságokat:
|
1 |
sudo chmod +x /usr/local/bin/docker-compose |
Ezután ellenőrizze a verziót, hogy megbizonyosodjon a telepítés sikerességéről:
|
1 |
$docker-compose --version |
Az alábbi kód kiírja a telepített verziót:
Ezután futtathat egy “Hello World” példát a telepített Docker Compose segítségével.
2. lépés: Konténer futtatása a Docker Compose segítségével
A Docker Hub-on, a nyilvános Docker regiszterben található egy “Hello World” képfájl (image), amely bemutatóra és tesztelésre használható. Ez megmutatja, hogyan futtathat egy konténert a Docker Compose segítségével a lehető legkisebb konfigurációval. Először létre kell hoznia egy könyvtárat a YAML fájlunk számára:
|
1 |
$mkdir hello-world |
Ezután lépjen be ebbe a könyvtárba:
|
1 |
$cd hello-world |
Ezután a preferált szövegszerkesztőjével hozza létre a YAML fájlt. Ebben az útmutatóban a következőt fogjuk használni: Vi:
|
1 |
$vi docker-compose.yml |
Nyomja meg az i gombot a beillesztési (insert) módba lépéshez, majd gépelje be ezt a fájlba:
|
1 2 |
my-test: image: hello-world |
A konténer nevébe az első sor fog beépülni. A második sor utasítja a programot, hogy melyik képfájlt (image) használja a konténer létrehozásához. A docker-composeup parancs egy hello-world nevű helyi képfájlt fog keresni, hogy ellenőrizze az elérhetőségét a parancs beírásakor. A beillesztési módból való kilépéshez nyomja meg az ESC billentyűt. Ezután írja be a :x parancsot, majd nyomja meg az ENTER billentyűt a fájl mentéséhez és a kilépéshez. A docker images parancs használható a gépen lévő képfájlok manuális ellenőrzésére:
|
1 |
$ sudo docker images |
Ha egyáltalán nincsenek helyi képfájlok, csak az oszlopfejlécek jelennek meg:
A konténer létrehozásához futtassa ezt a parancsot, miközben még mindig a /hello-world könyvtárban:
|
1 |
$sudo docker-compose up |
Amikor először futtatja a parancsot, és nincs hello-world nevű helyi képfájl, az le lesz töltve a Docker Hub tárhelyről:
A telepítés működésének ellenőrzéséhez a Docker Compose letölti a képfájlt, létrehoz egy konténert, csatolja azt, és végrehajtja a hello programot:
Ezt követően megjelenik az elvégzett műveletek leírásának kinyomtatása:
Amikor a hello befejezi a feladatát, a konténer leáll, és a parancs már nem fog futni a konténerben. Az aktív folyamatok megtekintésekor az oszlopfejlécek fognak megjelenni. Azonban a hello-world konténer nem fog szerepelni a listában, mert jelenleg nem működik:
|
1 |
$sudo docker ps |
Az összes konténer megtekintéséhez, nem csak a jelenleg futókhoz, használja az -a jelzőt (flag):
|
1 |
$sudo docker ps -a |
Most, hogy kipróbálta egy konténer futtatását, továbbléphet a Docker Compose néhány alapvető parancsának megismerésére.
3. lépés: Docker Compose parancsok
A Docker Compose használatának megkezdéséhez ez a szakasz áttekinti a docker-compose eszköz által biztosított alapvető parancsokat. docker-compose egy olyan parancs, amely könyvtáranként működik. Ha minden konténerhez egy könyvtárat és könyvtáranként egy docker-compose.yml fájlt hoz létre, akkor ugyanazon a számítógépen több Docker-konténercsoportot is futtathat.
Eddig önállóan futtatta a Docker Compose-t. Kikapcsolhatja a következő billentyűkombináció megnyomásával: Ctrl-C. Ez lehetővé teszi a terminálablak számára a hibakeresési üzenetek megjelenítését. Éles környezetben azonban célszerű a docker-compose parancsot szolgáltatásként futtatni. A -d opció egyszerű módot kínál ennek megvalósítására:
|
1 |
docker-compose up -d |
Most a docker-compose a háttérbe kerül. A Docker-konténerek csoportja (legyen az leállított vagy futó) a következő paranccsal kezelhető:
|
1 |
$sudo docker-compose ps -a |
A konténer State állapota Exited értékként jelenik meg, ha le van állítva, amint az az alábbi példában is látható:
Egy éppen futó konténer a következőt fogja megjeleníteni:
|
1 2 3 4 |
Name Command State Ports --------------------------------------------------------------- nginx_nginx_1 nginx -g daemon off; Up 443/tcp, 80/tcp |
Leállíthatja az összes futó Docker-konténert abban a könyvtárban, ahol a Docker-csoport elindításához használt docker-compose.yml fájl található:
|
1 |
$docker-compose stop |
Note: Ha kényszerítettebben kell leállítania a dolgokat, a docker-compose kill parancs is használható.
Bizonyos esetekben a Docker-konténerek elmenthetik a régi adataikat magukban. Használja az rm parancsot az összes konténer eltávolításához a konténercsoportból, ha teljesen tiszta lappal szeretne indulni:
|
1 |
$docker-compose rm |
Ha ezen parancsok bármelyikét egy másik könyvtárból futtatja, mint ahol a Docker-konténer és a .yml fájl található, az hibaüzenetet fog eredményezni:
|
1 2 3 4 5 6 |
ERROR: Can't find a suitable configuration file in this directory vagy any parent. Are you in the right directory? Supported filenames: docker-compose.yml, docker-compose.yaml |
Ebben a szakaszban áttekintettük a konténerek Docker Compose segítségével történő kezelésének alapjait. Mint említettük, a következő szakaszban hozzáférhet a Docker fájlrendszeréhez, és parancsokat futtathat a konténeren belüli parancssorból, ha további ellenőrzésre van szüksége a konténerei felett.
Step 4: Access the Docker Container Filesystem
Lehetőség van parancssor futtatására egy konténerben, és a konténer fájlrendszerének elérésére a docker exec parancssori eszköz használatával. Példaként futtassa a „Hello World” alkalmazást, és nézze meg, mennyi ideig tart a docker exec parancs végrehajtása. Ebben az útmutatóban az Docker Hub image of Nginx használható. Hozzon létre egy új könyvtárat nginx néven, és lépjen be oda:
|
1 2 |
mkdir ~/nginx cd ~/nginx |
Most már rendelkeznie kell egy docker-compose.yml fájllal, amelyet megnyithat egy szövegszerkesztőben:
|
1 |
vi docker-compose.yml |
Ezután adja hozzá a következőket a fájlhoz:
|
1 2 |
nginx: image: nginx |
Itt az ideje bezárni az alkalmazást. Az Nginx konténer háttérben történő elindításához használja a következő parancsot:
|
1 |
$sudo docker-compose up -d |
A Docker Compose letölti az Nginx-képet, és a háttérben futtatja a konténert. A folytatáshoz meg kell adnia a konténer CONTAINER ID azonosítóját. Az összes jelenleg futó konténert a következő paranccsal tekintheti meg:
|
1 |
$sudo docker ps |
A következőt fogja látni:
Ha módosítani szeretné a fájlrendszert ezen a konténeren belül a docker exec használatával, akkor a konténer egyedi azonosítóját (ebben az esetben: f139d0d78ca7) kell használnia egy shell létrehozásához a konténeren belül:
|
1 |
$sudo docker exec -it f139d0d78ca7 /bin/bash |
Interaktív terminált a -t opcióval nyithat meg, míg a /bin/bash egy bash shellt biztosít a konténer számára. Ezt követően ezt a bash promptot fogja látni a konténernél:
|
1 |
root@b86b6699714c:/# |
A konténeren belül egy parancssort talál. A konténer újraindítása felülír minden elvégzett módosítást, kivéve, ha olyan könyvtárban dolgozik, amelyet egy adatkötet részeként mentett el. Ha hozzá van szokva a Linux parancssori eszközeihez, tudnia kell, hogy a legtöbb Docker-rendszerkép a legalapvetőbb Linux-telepítések használatával készül.
Összegzés
Végigvezettük a Docker Compose aktuális verziójának telepítési lépésein a többkonténeres alkalmazások kezeléséhez CentOS 7 rendszeren. Lenyűgöző a Docker Compose azon képessége, hogy egyszerre nagyszámú konténert képes elindítani és leállítani. A sablonoktól az alkalmazásokig mindössze percek kérdése az út. Így ha a munkája során egyszerre több konténert kell futtatnia, a Docker Compose használata kiváló választás. Ez azonban nem egy univerzális megoldás. Az egyedi igényeitől függően találhat jobb lehetőségeket is, például a Kubernetes.
A Docker Compose lehetőségeinek további felfedezéséhez tekintse meg ezeket az oktatóanyagokat a blogunkról:
- Laravel, Nginx és MySQL üzembe helyezése Docker Compose segítségével
- A Docker Compose telepítése és konfigurálása Ubuntu 20.04 rendszeren
Kellemes számítástechnikát!






Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.