Bij het werken met Docker gebruik je images — uitvoerbare bestanden die alles bevatten wat nodig is om een toepassing te draaien, inclusief de broncode, bibliotheken en afhankelijkheden. Deze images worden opgeslagen in speciale opslagplaatsen die registers worden genoemd. Ze kunnen privé of publiek zijn.
Het bekendste openbare register is Docker Hub, waar je veel officiële images kunt vinden zoals Nginx, PostgreSQL, Alpine, Ubuntu, Node en MongoDB. Gebruikers kunnen zich registreren op Docker Hub en hun eigen images opslaan — standaard met één openbaar en drie privéregisters.Docker Hub is het standaardregister dat Docker gebruikt om images op te halen (pull).
Deze handleiding legt uit hoe je het standaardregister van Docker kunt wijzigen naar een ander register.
Een eenvoudige manier om externe registers te gebruiken is door derde-partijregisters van bedrijven zoals Google en Amazon te benutten.
Hieronder vind je een lijst met openbare registers die je kunt gebruiken:
|
Register-URL |
Eigenaar |
|
|
|
|
Amazon |
|
|
Red Hat |
|
|
Red Hat |
|
|
Red Hat |
⚠️ Let op: het gebruik van externe registers kan veiligheidsrisico’s met zich meebrengen. Wees dus voorzichtig.
Volg de onderstaande stappen om het standaardregister (Docker Hub) te vervangen door een ander register.
Open het bestand daemon.json met een teksteditor.
Als Docker niet in rootless-modus is geïnstalleerd, bevindt dit bestand zich hier:
/etc/docker/daemon.json
Als het bestand niet bestaat, maak je het aan met:
nano /etc/docker/daemon.json
Voor rootless Docker bevindt het bestand zich in de thuismap van de gebruiker:
~/.config/docker/daemon.json
Maak het bestand aan indien nodig met:
nano ~/.config/docker/daemon.json
Voeg de volgende parameter toe om een nieuw standaardregister in te stellen (in dit voorbeeld het Google-mirrorregister):
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Sla het bestand op en sluit het.
Herstart vervolgens de Docker-dienst om de wijziging toe te passen:
systemctl reload docker
Vanaf nu zal Docker het nieuwe register gebruiken wanneer je een image ophaalt. Voorbeeld: haal het Alpine-image op uit het Google-register:
docker pull mirror.gcr.io/alpine
Je kunt ook een specifieke versie opgeven, bijvoorbeeld:
docker pull mirror.gcr.io/nginx:1.25.2
Open het bestand daemon.json, dat zich hier bevindt:
C:\Users\<jouw_gebruikersnaam>\.docker\daemon.json
Voeg de parameter toe:
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Sla het bestand op en start Docker opnieuw. Klik met de rechtermuisknop op het Docker-pictogram in het systeemvak en kies Restart.
Je kunt dit ook instellen via de Docker Desktop-interface:
Ga naar Settings → Docker Engine en voeg dit toe:
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Klik daarna op Apply & Restart om de wijziging toe te passen.
Na de herstart gebruikt Docker het nieuwe register om images op te halen.
Voorbeeld: download een curl-image:
docker pull mirror.gcr.io/curlimages/curl
Of een specifieke versie:
docker pull mirror.gcr.io/node:21-alpine
Je kunt ook Nexus gebruiken om Docker-images te beheren. Nexus ondersteunt proxy-repositories, die images cachen die zijn opgehaald uit externe registers zoals Docker Hub. Zo kan Nexus fungeren als caching-proxyregister voor Docker-images — handig als externe registers tijdelijk niet beschikbaar zijn.
Log in op Nexus als beheerder of een gebruiker met rechten om repositories aan te maken.
Ga naar Server Administration and Configuration → Repositories.
Klik op Create repository en kies het type docker (proxy).
Vul de vereiste velden in:
Name: geef het repository een unieke naam.
Online: vink dit aan om het repository actief te maken.
Proxyserver: als Nexus achter een proxy (zoals Nginx) draait, hoef je geen poort voor authenticatie te gebruiken.
Zonder proxy wijs je een unieke poort toe voor HTTP of HTTPS.
Allow anonymous docker pull: vink dit aan om images zonder login te kunnen downloaden.
Als het uitstaat, moet je eerst inloggen.
Remote storage: geef de URL van het externe register op, bijvoorbeeld https://registry-1.docker.io voor Docker Hub.
Nadat het repository is aangemaakt, log je in (indien vereist) met:
docker login <nexus_registry_adres>
Om een image op te halen:
docker pull <nexus_registry_adres>/image_naam:tag
Voorbeeld: om een Python-image te downloaden met tag 3.8.19-alpine:
docker pull nexus-repo.com/python:3.8.19-alpine
⚠️ Veiligheidstip: gebruik niet de tag latest, omdat deze mogelijk bugs of kwetsbaarheden bevat.
In dit artikel hebben we verschillende manieren besproken om Docker-images op te halen en op te slaan. Het gebruik van externe registers kan nuttig zijn als Docker Hub niet beschikbaar is. Vertrouw je externe registers niet volledig? Dan kun je altijd een eigen privé- of openbaar Docker-register opzetten, bijvoorbeeld met Nexus of Harbor.