Bevezetés
Konténerizáció az elmúlt években hatalmas lendületet vett a szoftvertechnológiai iparágban. Ez a Docker-nek köszönhető, amely egy olyan konténerplatform, amely leegyszerűsíti a konténereken belüli folyamatok kezelését.
A konténerek könnyűsúlyú, virtualizált, hordozható, szoftveresen definiált szabványosított környezetek, amelyek lehetővé teszik a szoftverek futtatását a fizikai gazdagépen futó más szoftverektől elkülönítve. Ez a hordozhatósági funkció lehetővé teszi a fejlesztők számára, hogy alkalmazásaikat elkülönített szolgáltatásokra modularizálják. Ezenkívül egymástól függetlenül is kiszolgálhatók, ami teret ad a skálázásnak.
Bár egy alkalmazás több szolgáltatásra való felosztása kétségkívül nagyszerű, ez a több konténer kezelésével járó többletköltséggel jár. Biztosítania kell, hogy kommunikáljanak, egyszerre induljanak el és álljanak le. Egy Docker Compose nevű eszköznek köszönhetően ez egyszerű feladattá válik. A Docker Compose lehetővé teszi a fejlesztők számára, hogy többkonténeres Docker-alkalmazásokat futtassanak egy YAML fájlban meghatározott szabályok szerint. A YAML fájl tartalmazza az alkalmazásszolgáltatások definícióit, valamint azt, hogyan oszthatnak meg adat köteteket és hálózatokat. Miután meghatározta a szolgáltatásokat, egyetlen paranccsal elindíthatja az összeset. Ebben az útmutatóban megmutatjuk, hogyan telepítheti, konfigurálhatja és kezdheti el használni a Docker Compose-t Ubuntu 20.04-en.
Előfeltételek
-
Mivel ez egy gyakorlati útmutató, kezdeti operációs környezetként egy telepített Ubuntu 20.04-gyel kell rendelkeznie. Szüksége lesz egy nem-root felhasználóra is sudo jogosultságokkal. Itt egy lépésről lépésre követhető útmutató, amely segít az Ubuntu szerver beállításában. Kövesse ezt az útmutatót a sudoers fájl konfigurálásához.
-
A Dockert is telepítenie kell. 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.
1. lépés: A Docker Compose telepítése
A Docker Compose legújabb stabil verzióját fogjuk letölteni a hivatalos GitHub tárhelyéről. A legújabb verziót megtalálhatja a kiadások (releases) oldalon, ezen útmutató írásakor a legújabb verzió a 1.28.5.
Először jelentkezzen be az Ubuntu szerverére a nem-root sudo felhasználóval, és írja be a következő parancsot. Ez letölti a legújabb kiadást (1.28.5), és elmenti a futtatható fájlt a /usr/local/bin/docker-compose könyvtárba. Ezáltal globálisan elérhetővé válik docker-compose néven:
|
1 |
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
A letöltés befejezése után írja be a következő parancsot a megfelelő jogosultságok beállításához, hogy a docker-compose parancs futtatható legyen:
|
1 |
sudo chmod +x /usr/local/bin/docker-compose |
Most ellenőrizze, hogy a telepítés sikeres volt-e, és a parancs meghívható-e a következő parancs futtatásával:
|
1 |
docker-compose –version |
A következőhöz hasonló kimenetet kell kapnia:

Ez megerősíti, hogy a Docker Compose sikeresen telepítve lett a rendszerére.
2. lépés: A docker-compose.yml fájl létrehozása
Annak érdekében, hogy megértse, hogyan kell dolgozni a docker-compose.yml, fájllal, konfigurálni fogunk egy webszerver környezetet a hivatalos Nginx image segítségével a Docker Hub-ról. A telepítés után képesnek kell lennünk egy egyszerű HTML oldal kiszolgálására a konténerből.
A munkakönyvtárunkat a saját (home) mappánkban fogjuk létrehozni, ahonnan dolgozni fogunk. Írja be a következő parancsot a könyvtár létrehozásához:
|
1 |
mkdir ~/compose-example |
Ezután lépjen be a könyvtárba:
|
1 |
cd ~/compose-example |
A könyvtárba belépve hozzon létre egy alkalmazásmappát, amely a dokumentumgyökér (document root) lesz az Nginx környezet számára. Ezt a mappát nevezhetjük app:
|
1 |
mkdir app |
- HTML oldal létrehozása
Használjuk a nano szövegszerkesztőt az index.html fájl létrehozásához az app mappában:
|
1 |
nano app/index.html |
Ezután adja hozzá a következő HTML-kódot a fájlhoz:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="generator" content="Hugo 0.80.0"> <title>Docker Compose példa</title> <!-- Bootstrap alapvető CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"> </head> <body> <main> <section class="py-5 text-center container"> <div class="row py-lg-5"> <div class="col-lg-6 col-md-8 mx-auto"> <h1 class="fw-light">Szuper Docker Compose példa a CloudSigma-val</h1> <p class="h4"> Ez egy alapvető statikus HTML oldal. </p> <p class="lead text-muted"> Ezt az oldalt egy Nginx Docker konténer szolgálja ki, amelynek alapja a <b>docker-compose </b> </p> </div> </div> </section> </main> </body> </html> |
A fájl mentéséhez nyomja meg a CTRL + O, majd az ENTER billentyűket. Ezután zárja be a CTRL + X billentyűkombinációval. Ezután létrehozzuk a docker-compose.yml fájlt a projektünk gyökérkönyvtárában.
- A HTML oldal hosztolása a docker-compose használatával
Ezután írja be a következő parancsot a fájl megnyitásához a nano szerkesztővel:
|
1 |
nano docker-compose.yml |
Ezután adja hozzá a következő kódrészletet a fájlhoz:
|
1 2 3 4 5 6 7 8 |
version: '3.7' services: webserver: image: nginx:alpine ports: - "8000:80" volumes: - ./app:/usr/share/nginx/html |
A docker-compose.yml fájl azzal a verziószámmal kezdődik, amely megmondja a Docker Compose-nak, hogy melyik konfigurációs verziót használjuk. Kérjük, kövesse ezt a linket, ha többet szeretne megtudni a Docker Compose verziókezelésről.
A verziószám után a services (szolgáltatások) blokk következik, amely a környezetet alkotó szolgáltatásokat tartalmazza. Ebben az útmutatóban csak egyetlen szolgáltatást adtunk meg, amelynek neve webserver. A webserver szolgáltatás az nginx:alpine képet fogja használni. A portátirányítást is meghatároztuk: 8000:80. Ez azt jelenti, hogy a gazdagép 8000 portjáról érkező összes kérés a webserver konténer 80 portjára lesz átirányítva, ahol az Nginx fut.
A volumes direktíva lehetővé teszi egy megosztott kötet létrehozását a gazdagép és a konténer között, amelyet az adatok megőrzésére használhatunk. A mi yml kód részletünkben megosztjuk a helyi app mappát a konténerrel. A konténeren belül ez a /usr/share/nginx/html helyre kerül. Ezért felülírja az Nginx alapértelmezett dokumentumgyökerét. Most már elmentheti és bezárhatja a fájlt.
Eddig a pontig létrehozta a példa HTML weboldalát és a docker-compose.yml fájlt a konténerizált webszerver-környezet felépítéséhez szükséges utasításokkal. Lássuk a következő lépésben, hogyan indíthatjuk be ezt a beállítást.
3. lépés: A Docker Compose parancs végrehajtása
Ebben a lépésben futtatni fogjuk a parancsot a konténerizált környezetünk elindításához. Alább látható az az egyetlen parancs, amely elindítja a Docker-képek letöltési folyamatát, létrehoz egy konténert a webserver szolgáltatáshoz, és elindítja a konténerizált környezetet a háttérben:
|
1 |
docker-compose up -d |
A Dockert úgy tervezték, hogy gyors és hatékony legyen, így a fenti parancs futtatásakor először ellenőrzi a helyi rendszert a meghatározott kép után. Ha hiányzik, akkor letölti azt a Docker Hub tárolóból. A következőhöz hasonló kimenetet kell mutatnia:

Amikor a parancs végrehajtása befejeződik, elindítja a háttérben futó konténerkörnyezetet. A futást a következő paranccsal ellenőrizheti:
|
1 |
docker-compose ps |
Hasonló kimenetet kell kapnia:

Ha elnavigál a szervere IP-címére vagy domain nevére, és hozzáadja a 8000-es portot, azaz a server_domain_or_IP:8000 címet, látnia kell az általunk létrehozott példa HTML oldalt:

Ha emlékszik, beállítottunk egy megosztott kötetet a konténer és a gazdarendszer között. Ez szinkronban tartja a konténerben lévő fájlokat a gazdarendszeren lévő fájlokkal. Ezért ha módosítja a index.html fájlt, az automatikusan szinkronizálódik a konténerrel, és megjelenik, amikor újratölti az oldalt a böngészőben. Kipróbálhatja a nano szerkesztővel. Tanuljunk meg még néhány parancsot a következő lépésben.
4. lépés: További Docker Compose parancsok a konténerkörnyezetek kezeléséhez
Most, hogy sikeresen közzétett egy weboldalt az egyetlen docker-compose-up paranccsal, lássunk néhány további parancsot, amelyek hasznosak lehetnek a konténerizált környezetek kezelésében.
A logs paranccsal kezdjük. A naplófájlok döntő fontosságúak lehetnek az alkalmazáshibák elhárításakor. Először futtassa a következő parancsot az Nginx konténer által generált naplók megtekintéséhez:
|
1 |
docker-compose logs |
Íme egy minta a naplók kimenetéből:

A környezet futtatását a konténerek állapotának megváltoztatása nélkül is felfüggesztheti a következő paranccsal:
|
1 |
docker-compose pause |
![]()
Ezután a felfüggesztés feloldásához vagy a végrehajtás folytatásához használja a következő parancsot:
|
1 |
docker-compose unpause |
![]()
Előfordulhat, hogy le szeretné állítani a konténereket az adataik törlése nélkül. Ehhez használja a következő parancsot:
|
1 |
docker-compose stop |
![]()
A konténerizált környezethez kapcsolódó konténerek, hálózatok és kötetek törléséhez használja a következő parancsot:
|
1 |
docker-compose down |
![]()
Tartsa szem előtt, hogy a fenti parancs nem távolítja el a Docker Compose által a környezet elindításához használt alapképeket. Ez gyorsabb buildelést biztosít a környezet indításakor, mivel ellenőrzi a helyi gépen a megfelelő képeket. Ha teljesen el szeretné távolítani az alapképet, azt meg kell adnia a parancsban. Példánkban eltávolíthatjuk a nginx:alpine képet a következő paranccsal:
|
1 |
docker image rm nginx:alpine |

Végezetül további parancsokat találhat a hivatalos Docker Compose parancssori hivatkozás dokumentációban.
Összegzés
Ebben az útmutatóban telepítette a Docker Compose-t az Ubuntu 20.04 rendszerre, létrehozott egy Nginx webszerver-képen alapuló konténerizált környezetet, és megtanulta, hogyan kezelheti a különböző szolgáltatásokat a Docker Compose parancsok segítségével.
Ha szeretné megtanulni, hogyan telepíthet egy valós, több konténertől függő dinamikus alkalmazást, kérjük, olvassa el az alábbi útmutatónkat: Laravel, Nginx és MySQL telepítése Docker Compose segítségével. A docker-compose parancsok teljes listáját megtalálja a hivatalos Docker Compose dokumentációban.
Kellemes számítógép-használatot!
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.