Üdvözöljük a konténerizáció világában! Ha valaha is szembesült azzal a problémával, hogy egy alkalmazás nem működik megfelelően egy másik környezetben, vagy egyszerűen csak szeretné izolálni és könnyen hordozhatóvá tenni szoftvereit, akkor a Docker az Ön barátja. A Docker forradalmasította az alkalmazásfejlesztést és -telepítést, lehetővé téve a fejlesztők számára, hogy szoftvereiket és összes függőségüket egységes, önálló csomagokba – úgynevezett konténerekbe – zárják. Ezek a konténerek aztán bármilyen környezetben (legyen az egy fejlesztői gép, tesztszerver vagy éles rendszer) konzisztensen futtathatók.
Ebben az átfogó útmutatóban lépésről lépésre végigvezetjük, hogyan telepítheti a Docker Engine-t és a kapcsolódó eszközöket a népszerű és stabil Debian 12 Bookworm operációs rendszerre. Akár kezdő, akár tapasztalt Linux felhasználó, ez a cikk segítséget nyújt a zökkenőmentes telepítéshez és az első konténerek elindításához.
Miért éppen Debian 12 Bookworm és Docker?
A Debian a stabilitásáról, biztonságáról és hatalmas szoftverválasztékáról híres. A Debian 12 Bookworm a legújabb stabil kiadás, amely modern csomagokat és frissítéseket kínál, ideális alapot biztosítva a Docker futtatásához. A Dockerrel együttműködve egy rendkívül robusztus és hatékony platformot hozhat létre alkalmazásai számára.
A konténerizáció előnyei közé tartozik:
- Konzisztencia: Az alkalmazások ugyanúgy futnak fejlesztői gépen, tesztszerveren és éles környezetben.
- Izoláció: Minden konténer elszigetelt a rendszertől és a többi konténertől, minimalizálva az ütközéseket.
- Hordozhatóság: A konténerek könnyen mozgathatók különböző gépek és felhőszolgáltatások között.
- Hatékonyság: A konténerek kevesebb erőforrást igényelnek, mint a virtuális gépek.
- Gyorsabb telepítés: Az alkalmazások gyorsabban indíthatók és telepíthetők.
Előfeltételek és rendszerfrissítés
Mielőtt belevágnánk a Docker telepítésébe, győződjön meg róla, hogy a rendszere készen áll. Szüksége lesz egy Debian 12 Bookworm rendszerre (akár fizikai gépen, akár virtuális gépen), internet-hozzáférésre és egy felhasználóra, aki rendelkezik sudo jogosultságokkal.
Első lépésként mindig frissítse a rendszerét a legújabb csomagokkal, hogy elkerülje a kompatibilitási problémákat és a biztonsági réseket:
sudo apt update
sudo apt upgrade -y
Ez a parancsfrissíti a csomaglistákat, majd telepíti az összes elérhető frissítést a rendszerre. A -y kapcsoló automatikusan jóváhagyja a telepítést, anélkül, hogy minden egyes lépésnél megerősítést kérne.
Korábbi Docker verziók eltávolítása (opcionális)
Ha korábban már telepített valamilyen Docker verziót a rendszerére (például egy régebbi útmutató alapján vagy egy Debian csomagból), javasolt eltávolítani azokat egy tiszta telepítés érdekében. Ez megakadályozhatja a verziókonfliktusokat és a váratlan hibákat.
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt autoremove -y
Ezek a parancsok eltávolítják a fő Docker csomagokat és az esetlegesen hátramaradt függőségeket. Vegye figyelembe, hogy ez a művelet nem távolítja el a meglévő Docker képeket, konténereket, köteteket vagy hálózatokat. Ha ezeket is törölni szeretné, manuálisan teheti meg a következő parancsokkal (csak akkor futtassa, ha biztos benne, hogy mindent törölni szeretne!):
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
A szükséges csomagok telepítése
A Docker hivatalos tárolójából való telepítéshez szükségünk lesz néhány alapvető csomagra, amelyek lehetővé teszik a biztonságos HTTPS kapcsolatot és a GPG kulcsok kezelését:
sudo apt install ca-certificates curl gnupg lsb-release -y
ca-certificates: Lehetővé teszi az SSL/TLS alapú tanúsítványok megbízhatóságának ellenőrzését.curl: Parancssori eszköz fájlok letöltésére URL-ről. Ezt fogjuk használni a Docker GPG kulcsának letöltésére.gnupg: GPG kulcsok kezeléséhez szükséges, amivel ellenőrizni tudjuk a Docker csomagok hitelességét.lsb-release: Segít a rendszer disztribúciójának azonosításában (például „bookworm”), amit a Docker tároló URL-jének összeállításához használunk.
A Docker GPG kulcs és adattár hozzáadása
A biztonságos és hiteles telepítés érdekében a Docker hivatalos tárolójából kell telepítenünk. Ehhez először hozzá kell adnunk a Docker GPG (GNU Privacy Guard) kulcsát a rendszerünkhez. Ez biztosítja, hogy a letöltött csomagok valóban a Dockertől származnak, és nem manipulálták őket.
Hozzon létre egy kulcsok tárolására szolgáló könyvtárat, ha még nem létezik:
sudo install -m 0755 -d /etc/apt/keyrings
Töltse le a Docker GPG kulcsát, és mentse el a megfelelő helyre:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Ez a parancs letölti a GPG kulcsot a Docker szerveréről, majd a gpg --dearmor paranccsal átalakítja egy megfelelő formátumba, végül pedig a /etc/apt/keyrings/docker.gpg fájlba menti.
Állítsa be a letöltött GPG kulcs fájl jogosultságait:
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Ez biztosítja, hogy az apt csomagkezelő olvasni tudja a kulcsot.
Most adja hozzá a Docker stabil adattárát az APT forráslistájához:
echo
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Ez a hosszú parancs egy új bejegyzést ad hozzá a /etc/apt/sources.list.d/docker.list fájlhoz. Ez a bejegyzés tájékoztatja az apt-ot, hogy hol találja a Docker csomagokat. Figyelje meg, hogy a $(. /etc/os-release && echo "$VERSION_CODENAME") rész automatikusan felismeri a Debian verziójának kódnevét (pl. „bookworm”), biztosítva a helyes adattár hozzáadását.
A Docker telepítése
Miután hozzáadtuk a Docker adattárát, frissítenünk kell az APT csomaglistáját, hogy az új tároló is szerepeljen benne:
sudo apt update
Most már telepíthetjük a Docker Engine-t és a kapcsolódó eszközöket. A következő parancs telepíti a legfrissebb stabil verziókat:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
docker-ce: A Docker Engine központi komponense.docker-ce-cli: A Docker parancssori felülete (CLI), amellyel a Docker Engine-t vezérelheti.containerd.io: Egy nagy teljesítményű, futásidejű konténer-motor, amelyet a Docker is használ.docker-buildx-plugin: Egy kiterjesztés a Docker CLI-hez, amely több platformra való építést tesz lehetővé.docker-compose-plugin: A Docker Compose beépülő modulja, amellyel többkonténeres Docker alkalmazásokat definiálhat és futtathat.
A telepítés ellenőrzése
A telepítés befejeztével ellenőriznünk kell, hogy a Docker szolgáltatás fut-e, és megfelelően működik-e.
Ellenőrizze a Docker szolgáltatás állapotát:
sudo systemctl status docker
A kimenetben valami olyasmit kell látnia, hogy Active: active (running), ami jelzi, hogy a Docker démon aktív és fut.
Futtasson egy tesztkonténert, a híres „hello-world” képet:
sudo docker run hello-world
Ha a telepítés sikeres volt, a Docker letölti a hello-world képet, elindít belőle egy konténert, amely kiír egy üdvözlő üzenetet a konzolra, majd leáll. A kimenet valami ilyesmi lesz:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Gratulálunk! A Docker sikeresen telepítve van a Debian 12 rendszerére.
Docker használata nem root felhasználóként
Alapértelmezés szerint a docker parancsok futtatásához sudo jogosultságokra van szükség. Ez nem ideális fejlesztéshez vagy mindennapi használathoz. A kényelmesebb és biztonságosabb használat érdekében hozzáadhatja a felhasználóját a docker csoporthoz. Ez lehetővé teszi, hogy a Docker parancsokat sudo nélkül futtassa.
Adja hozzá a jelenlegi felhasználóját (vagy bármely más felhasználót) a docker csoporthoz:
sudo usermod -aG docker $USER
A $USER változó automatikusan a jelenleg bejelentkezett felhasználónevét helyettesíti. Ha egy másik felhasználót szeretne hozzáadni, cserélje ki a $USER helyére az adott felhasználónevet.
A változtatások érvénybe lépéséhez ki kell jelentkeznie, majd újra be kell jelentkeznie a rendszerbe, vagy újra kell indítania a rendszert. Alternatív megoldásként futtathatja a következő parancsot, de a kijelentkezés és bejelentkezés a legbiztosabb:
newgrp docker
Miután újra bejelentkezett, ellenőrizze, hogy a docker parancs fut-e sudo nélkül:
docker run hello-world
Ha most is látja a „Hello from Docker!” üzenetet sudo nélkül, akkor sikeresen konfigurálta a felhasználói engedélyeket.
Alapvető Docker parancsok – Kezdje el használni!
Most, hogy a Docker telepítve van és működik, ismerkedjünk meg néhány alapvető paranccsal, amelyekkel elkezdheti a konténerek kezelését:
docker pull [kép_neve]: Letölt egy Docker képet a Docker Hub-ról (vagy más regisztrációs adatbázisból).
docker pull ubuntu:latest
Ez letölti az Ubuntu operációs rendszer legújabb képét.
docker images: Kilistázza a helyileg tárolt Docker képeket.docker images
docker run [kép_neve] [parancs]: Elindít egy új konténert egy adott képből.docker run -it ubuntu bash
Ez elindít egy új Ubuntu konténert interaktív módban (-it), és futtatja benne a bash shellt. Ezzel beléphet a konténerbe.
docker ps: Kilistázza az összes futó konténert. A -a kapcsolóval az összes (futó és leállított) konténert is megmutatja.docker ps -a
docker stop [konténer_azonosítója_vagy_neve]: Leállít egy futó konténert.docker stop my-ubuntu-container
docker rm [konténer_azonosítója_vagy_neve]: Eltávolít egy leállított konténert.docker rm my-ubuntu-container
docker rmi [kép_azonosítója_vagy_neve]: Eltávolít egy Docker képet. Először le kell állítani és törölni az összes, abból a képből futó konténert.docker rmi ubuntu:latest
docker logs [konténer_azonosítója_vagy_neve]: Megjeleníti egy konténer naplóit (standard output és standard error).docker logs my-web-app
docker exec -it [konténer_azonosítója_vagy_neve] [parancs]: Futtat egy parancsot egy már futó konténeren belül.docker exec -it my-web-app bash
Ezzel beléphet egy már futó konténerbe.
Gyakori problémák és hibaelhárítás
Bár a Docker telepítése általában zökkenőmentes, előfordulhatnak problémák. Íme néhány gyakori hiba és megoldásuk:
1. Hiba: „Cannot connect to the Docker daemon. Is the docker daemon running on this host?”
Ez a hiba azt jelzi, hogy a Docker szolgáltatás nem fut. Ellenőrizze az állapotát és indítsa el:
sudo systemctl status docker
sudo systemctl start docker
sudo systemctl enable docker
Az enable parancs biztosítja, hogy a Docker automatikusan elinduljon a rendszerindításkor.
2. Hiba: „Got permission denied while trying to connect to the Docker daemon socket…”
Ez egy jogosultsági hiba, ami azt jelenti, hogy a felhasználója nincs a docker csoportban, vagy a változtatások még nem léptek érvénybe. Ismételje meg a „Docker használata nem root felhasználóként” című fejezet lépéseit (sudo usermod -aG docker $USER), majd jelentkezzen ki és be, vagy indítsa újra a rendszert.
3. Hiba: „docker pull / run hangs or fails with network errors”
Ellenőrizze az internetkapcsolatát. Ha proxy szerver mögött van, akkor be kell állítania a Docker proxyt. Lásd a Docker dokumentációját a proxy konfigurációjához.
4. Hiba: Lemezterület hiánya
A Docker képek és konténerek sok helyet foglalhatnak. Használja a következő parancsot a nem használt Docker objektumok eltávolításához:
docker system prune -a
Figyelem: Ez törli az összes leállított konténert, nem használt hálózatot, lógó képet és opcionálisan az összes nem használt képet is.
Összefoglalás és további lépések
Gratulálunk! Sikeresen telepítette a Docker Engine-t, a Docker CLI-t és a containerd-t a Debian 12 Bookworm rendszerére. Most már képes konténereket futtatni, képeket kezelni és kihasználni a konténerizáció minden előnyét. A Docker Compose telepítése további segítséget nyújt a komplexebb, több konténerből álló alkalmazások kezelésében.
Ez az útmutató csak a jéghegy csúcsát mutatta be. A következő lépések a Dockerrel való mélyebb megismerkedés felé vezethetnek:
- Dockerfiles: Tanulja meg, hogyan készíthet saját Docker képeket
Dockerfile-ok segítségével. Ez az alapja az egyedi alkalmazások konténerizálásának. - Docker Compose: Fedezze fel, hogyan definiálhat és futtathat többkonténeres alkalmazásokat egyetlen YAML fájl segítségével.
- Docker Hálózatok: Értsd meg, hogyan kommunikálnak egymással a konténerek és a külvilággal.
- Docker Kötetek: Ismerkedjen meg az adatok perzisztens tárolásával a konténerek között.
- Konténer Orchestráció: Ha nagyméretű, termelési környezetben szeretne konténereket futtatni, érdemes megismerkedni olyan eszközökkel, mint a Kubernetes vagy a Docker Swarm.
A Docker egy hihetetlenül hatékony eszköz, amely jelentősen leegyszerűsítheti a fejlesztési, tesztelési és telepítési munkafolyamatokat. Ne habozzon kísérletezni, és fedezze fel a konténerizációban rejlő hatalmas lehetőségeket! Jó konténerizálást kívánunk!
Leave a Reply