← Vissza a bloghoz Alapok

A Docker Hub használata: image-ek keresése, letöltése és feltöltése

A Docker Hub a világ legnagyobb konténer-registry-je. Megtanulod, hogyan keress megbízható image-eket, hogyan tölts le és fel, és mit jelentenek a hivatalos jelölések.

Amikor kiadod a docker run nginx parancsot, és néhány másodperc alatt fut egy teljes webszerver, valami a háttérben csendben elvégezte a nehéz munkát: letöltötte az nginx image-et egy registry-ből. Ez a registry az esetek többségében a Docker Hub — a világ legnagyobb nyilvános konténer-registry-je, ahol több millió kész image vár arra, hogy használatba vedd. Ebben a cikkben megtanulod, hogyan keress megbízható image-eket, hogyan tölts le és fel sajátot, és mire figyelj a biztonság érdekében.

Mi az a registry és a Docker Hub?

A registry egy tárhely, ahol Docker image-eket tárolnak és osztanak meg. Olyan, mint egy alkalmazásbolt a konténereknek: feltöltheted a saját image-eidet, és letöltheted másokét. A Docker Hub a Docker hivatalos, alapértelmezett registry-je — amikor a docker pull nem ad meg konkrét registry-címet, a Docker innen tölt le.

Mielőtt mélyebbre ásnánk, ha még a konténerek alapfogalmaival ismerkedsz, érdemes elolvasni a Mi az a Docker? cikket, és átfutni a Kezdő lépések oldalt.

Image-ek letöltése: docker pull

Egy image letöltéséhez a docker pull parancsot használod:

docker pull nginx
docker pull postgres:16-alpine
docker pull node:20

Ha nem adsz meg taget (mint az első sorban), a Docker automatikusan a latest taget feltételezi — vagyis a docker pull nginx valójában a docker pull nginx:latest rövidítése. (A latest buktatóiról mindjárt lesz szó.)

Megjegyzés: ha a docker run-t úgy adod ki, hogy az image még nincs meg helyben, a Docker automatikusan lehúzza — nem kell külön pull-t futtatnod. Az image-ek réteges felépítéséről, és arról, hogy a pull miért csak a hiányzó rétegeket tölti le, a Docker image-ek és rétegek cikkben olvashatsz.

Hivatalos image-ek és ellenőrzött kiadók

A Docker Hubon több millió image van — köztük rengeteg ismeretlen forrásból. Hogyan találsz megbízhatót? Két fontos jelölésre figyelj:

  • Docker Official Image (hivatalos image): a Docker által gondozott, kurált image-ek készlete (pl. nginx, postgres, python, node, redis). Ezek a legmegbízhatóbbak: rendszeresen frissülnek, biztonsági javításokat kapnak, és jól dokumentáltak. A Hub felületén külön jelölés és gyakran a library/ névtér jelzi őket.
  • Verified Publisher (ellenőrzött kiadó): ismert cégek (pl. szoftvergyártók) hivatalosan ellenőrzött image-ei. Szintén megbízhatóbbak az átlagos, közösségi image-eknél.

💡 Tipp: A hivatalos image-ek neve névtér nélküli (pl. nginx, redis), míg a közösségi image-ek mindig egy felhasználónevet tartalmaznak (pl. bitnami/nginx vagy valaki/sajat-app). Ha a névben nincs perjel, jó eséllyel hivatalos image-ről van szó.

Tagek és a latest csapdája

A tag egy konkrét verziót vagy variánst jelöl. Például a postgres image esetén:

  • postgres:16 — a 16-os főverzió
  • postgres:16-alpine — a 16-os verzió kisebb, Alpine-alapú változata
  • postgres:latest — az, amit a kiadó épp a legfrissebbnek jelölt

A latest tag a leggyakoribb félreértés forrása. A latest nem jelent automatikusan „mindig a legújabbat” — egyszerűen az a tag, amit a kiadó alapértelmezésként beállított. Production környezetben sosem érdemes latest-re hagyatkozni, mert a mögötte lévő image bármikor megváltozhat, ami megjósolhatatlan buildeket eredményez.

⚠️ Figyelem: Mindig adj meg konkrét verzió-taget (pl. node:20.11-alpine)! Reprodukálható, megbízható buildekhez akár digestet is rögzíthetsz — erről részletesen a Docker image-ek és rétegek cikk ír.

Bejelentkezés és saját image feltöltése

Saját image feltöltéséhez először be kell jelentkezned a Docker Hubra (előbb hozz létre egy ingyenes fiókot a hub.docker.com oldalon):

docker login

A parancs bekéri a felhasználóneved és egy jelszót vagy access tokent. A feltöltési folyamat három lépésből áll: megfelelő név adása, tagelés, majd push.

A Docker Hubon a saját image-ed neve mindig FELHASZNÁLÓNÉV/REPOSITORY:TAG formátumú. Tegyük fel, hogy buildeltél egy image-et my-app néven:

docker build -t my-app .

Most tageld át a Docker Hub-os névre, majd töltsd fel:

docker tag my-app felhasznalonev/my-app:1.0.0
docker push felhasznalonev/my-app:1.0.0

Ha még nem írtál Dockerfile-t a saját image-edhez, a Dockerfile írása lépésről lépésre cikk lépésről lépésre végigvezet rajta.

Publikus és privát repository-k

A Docker Hubon a repository-id lehetnek nyilvánosak vagy privátak:

  • Public: bárki letöltheti az image-edet. Nyílt forrású projektekhez, megosztáshoz ideális.
  • Private: csak te (és akiknek hozzáférést adsz) láthatja. Az ingyenes fiók korlátozott számú privát repository-t enged; a fizetős csomagokban több jár.

A repository láthatóságát a Docker Hub webes felületén állíthatod be a létrehozáskor vagy utólag.

Rate limitek — érdemes tudni róla

A Docker Hub a névtelen és az ingyenes letöltésekre rate limitet (letöltési korlátot) alkalmaz egy adott időablakon belül. A pontos számok időről időre változnak, ezért mindig a Docker hivatalos dokumentációja az irányadó. A lényeg: ha sok automatizált buildet futtatsz (pl. CI/CD pipeline-ban), és „too many requests” hibába futsz, az nagy valószínűséggel ezt jelenti.

A megoldások:

  1. Jelentkezz be (docker login) — a bejelentkezett felhasználók magasabb limitet kapnak, mint a névtelenek.
  2. Cache-elj a CI rendszeredben, hogy ne minden buildnél húzd le ugyanazt az image-et.
  3. Nagy forgalomnál fontold meg egy fizetős csomagot vagy egy saját registry/proxy használatát.

A megbízható image-ek kiválasztásának biztonsága

Egy image-ben tetszőleges szoftver futhat, ezért a forrás megválasztása biztonsági kérdés is. Néhány alapelv:

  • Preferáld a hivatalos és ellenőrzött kiadói image-eket az ismeretlen közösségi image-ekkel szemben.
  • Nézd meg a frissítési dátumot és a letöltésszámot — egy évek óta nem frissített image elavult, sebezhető csomagokat tartalmazhat.
  • Rögzíts konkrét verzió-taget, hogy tudd, pontosan mit futtatsz.
  • Vizsgáld meg az image-et sebezhetőség-keresővel (pl. docker scout), mielőtt production-be teszed.

Arról, hogy egyáltalán miért éri meg konténerekben gondolkodni és megbízható image-ekre építeni, a Miért a Docker? oldal ad jó áttekintést.

Összefoglalás

A Docker Hub a konténeres munkád egyik központi eszköze. A legfontosabbak:

  • A registry image-ek tárhelye; a Docker Hub az alapértelmezett, legnagyobb nyilvános registry.
  • A docker pull letölt, a docker login + docker tag + docker push feltölt.
  • Preferáld a hivatalos image-eket és az ellenőrzött kiadókat; kerüld a latest-re hagyatkozást, használj konkrét verzió-taget.
  • A repository-k lehetnek publikusak vagy privátak, és figyelj a rate limitekre — bejelentkezve magasabb a korlát.
  • A megbízható forrás kiválasztása biztonsági kérdés is.

Próbáld ki: keress egy hivatalos image-et a Docker Hubon, húzd le docker pull-lal, majd ha kész vagy, tölts fel egy saját image-et! Ha még a telepítéssel akadtál el, kezdd a Telepítés oldallal, vagy frissítsd fel az alapokat a Hogyan működik cikkel.