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 alibrary/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/nginxvagyvalaki/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áltozatapostgres: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:
- Jelentkezz be (
docker login) — a bejelentkezett felhasználók magasabb limitet kapnak, mint a névtelenek. - Cache-elj a CI rendszeredben, hogy ne minden buildnél húzd le ugyanazt az image-et.
- 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 pullletölt, adocker login+docker tag+docker pushfeltö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.