Az első konténered: gyakorlati indulás 15 perc alatt
Futtasd az első Docker konténered lépésről lépésre: hello-world, egy webszerver indítása, logok megtekintése és takarítás. Konkrét parancsokkal.
Elég volt az elméletből, ideje végre kezet piszkolni! Ebben az útmutatóban lépésről lépésre elindítod az első Docker konténered, futtatsz egy igazi webszervert, megnézed a logokat, sőt be is lépsz a konténerbe. Mindössze 15 perc, és a végére magabiztosan fogod kezelni a Docker legfontosabb alapparancsait. Csak egy működő Docker-telepítésre lesz szükséged, így vágjunk is bele!
1. lépés: Ellenőrizd a telepítést
Mielőtt bármibe kezdenél, győződj meg róla, hogy a Docker fut és elérhető. Nyiss egy terminált, és írd be:
docker version
Ha látod a kliens és a szerver (Engine) verziószámát, akkor minden rendben. Egy gyors működési teszthez futtasd:
docker info
⚠️ Figyelem: Ha „Cannot connect to the Docker daemon” hibát kapsz, akkor a Docker Engine nem fut. Indítsd el a Docker Desktopot (Windows/macOS), vagy Linuxon a
sudo systemctl start dockerparanccsal a szolgáltatást. A telepítéshez nézd meg a Telepítés oldalt.
2. lépés: A klasszikus hello-world
A Docker hagyományos „szia, működöm” tesztje a hello-world image. Futtasd:
docker run hello-world
Mi történik a háttérben? Több dolog is, egymás után:
- A Docker megkeresi a
hello-worldimage-et helyben. Mivel még nincs meg, letölti a Docker Hubról (eztpullműveletnek hívjuk). - Az image-ből létrehoz egy új konténert.
- A konténer lefuttatja a benne lévő apró programot, amely kiír egy üdvözlő üzenetet.
- A program befejeződik, így a konténer leáll.
Ha látod az üdvözlő szöveget, gratulálok, most futtattad az első konténered! Ez azt is bizonyítja, hogy a teljes lánc (letöltés, futtatás, hálózat) hibátlanul működik.
3. lépés: Indíts egy igazi webszervert
A hello-world rögtön le is áll, ezért most indítsunk valami tartósabbat: egy nginx webszervert, amely a háttérben fut és figyel egy porton.
docker run -d -p 8080:80 --name webszerver nginx
Bontsuk szét a kapcsolókat, mert mindegyik fontos:
-d(detached) – A konténer a háttérben fut, nem foglalja le a terminálodat.-p 8080:80– Port-leképezés. A gazdagép 8080-as portját a konténer 80-as portjára irányítja (ott figyel az nginx).--name webszerver– Nevet ad a konténernek, így később könnyebben hivatkozhatsz rá.nginx– Az image neve, amelyből a konténer indul.
Most nyisd meg a böngésződben a http://localhost:8080 címet. Megjelenik az nginx üdvözlő oldala! Egy valódi webszerver fut a gépeden, anélkül hogy bármit telepítettél volna.
4. lépés: Nézd meg a futó konténereket
Lássuk, mi fut éppen. Írd be:
docker ps
A kimenetben megjelenik a webszerver konténered: a konténer azonosítója, a használt image, a státusza, és hogy melyik portot képezi le. Ha az összes konténert látni szeretnéd, beleértve a leállítottakat is (például a hello-worldöt), használd a -a kapcsolót:
docker ps -a
5. lépés: Olvasd a logokat
Egy futó alkalmazásnál gyakran kíváncsi vagy, mi történik a háttérben. A logokat így nézheted meg:
docker logs webszerver
Ha frissíted a böngészőben az oldalt, és újra lefuttatod a parancsot, látni fogod az új HTTP-kéréseket a logban. A folyamatos követéshez add hozzá a -f (follow) kapcsolót:
docker logs -f webszerver
A követésből a Ctrl+C billentyűkombinációval léphetsz ki, ez nem állítja le a konténert.
💡 Tipp: A
docker logs -faz egyik leghasznosabb hibakeresési eszköz. Ha valami nem úgy működik, ahogy várnád, szinte mindig itt érdemes először körülnézned.
6. lépés: Lépj be a konténerbe
Néha be kell lépned a konténerbe, hogy körülnézz vagy parancsot futtass benne. Ezt a docker exec paranccsal teheted meg:
docker exec -it webszerver bash
A kapcsolók:
-i(interactive) – Interaktív kapcsolat, fogadja a billentyűzeted.-t(tty) – Terminált biztosít, hogy normális parancssort kapj.
Most egy parancssorban vagy a konténer belsejében. Próbáld ki, listázd ki az nginx oldalait:
ls /usr/share/nginx/html
A cat /usr/share/nginx/html/index.html paranccsal megnézheted az oldal forrását is. Amikor végeztél, írd be: exit, és visszatérsz a saját terminálodba.
7. lépés: Állítsd le és takaríts el
A munka végén illik rendet rakni. Először állítsd le a konténert:
docker stop webszerver
Ezután töröld is:
docker rm webszerver
A leállított hello-world konténert is törölheted (a docker ps -a listából kikeresheted a nevét vagy azonosítóját). Ha az nginx image-re sincs többé szükséged, azt is eltávolíthatod:
docker rmi nginx
Az alábbi táblázat összefoglalja a megtanult parancsokat:
| Parancs | Mit csinál |
|---|---|
docker run | Konténert indít image-ből |
docker ps | Listázza a futó konténereket |
docker logs | Megmutatja a konténer logjait |
docker exec | Parancsot futtat futó konténerben |
docker stop | Leállít egy konténert |
docker rm | Töröl egy konténert |
Összefoglalás
- A
docker versionésdocker infoparanccsal ellenőrizheted a telepítést. - A
hello-worldimage lefuttatásával teszteled, hogy minden működik. - Az
nginxkonténert a-d,-pés--namekapcsolókkal indítottad, és böngészőből elérted. - Megtanultad a
docker ps,docker logs,docker exec,docker stopésdocker rmparancsokat. - A munka végén fontos a takarítás, hogy ne maradjanak felesleges konténerek és image-ek.
Szép munka, mostantól magabiztosan kezeled a konténereket! A következő lépés a saját image elkészítése: ehhez olvasd el a Dockerfile írása lépésről lépésre cikket. Ha pedig több szolgáltatást szeretnél együtt kezelni, nézd meg a Docker Compose bevezető útmutatót. További alapokért ugorj a Kezdő lépések oldalra!