Hogyan telepítsünk Docker konténereket Debian 12 Bookworm rendszerre?

Ü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

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük