Hoe bouw je een image en push je deze naar de registry?
sobes.tech AI
Antwoord van AI
De bouw van de Docker-afbeelding wordt uitgevoerd met het commando docker build, dat de Dockerfile als instructie gebruikt. De Dockerfile bevat stappen voor het maken van de afbeelding, zoals de basisafbeelding, het kopiëren van bestanden, het installeren van afhankelijkheden en het configureren van de omgeving.
Voorbeeld van een Dockerfile:
# Gebruik een basisafbeelding
FROM ubuntu:latest
# Installeer afhankelijkheden
RUN apt-get update && apt-get install -y nginx
# Kopieer configuratiebestanden
COPY nginx.conf /etc/nginx/nginx.conf
# Open poort
EXPOSE 80
# Start de webserver
CMD ["nginx", "-g", "daemon off;"]
Build-commando:
# docker build -t <beeldnaam>:<tag> <pad_naar_Dockerfile>
docker build -t my-nginx-image:latest .
-t my-nginx-image:latest geeft de afbeelding de naam my-nginx-image met de tag latest.
. geeft de huidige directory aan waar de Dockerfile zich bevindt.
Na een succesvolle build is de afbeelding lokaal beschikbaar. Om deze op te slaan in een register (bijvoorbeeld Docker Hub of een privé-register), moet je eerst inloggen met het commando docker login.
# docker login <register_adres>
# Voor Docker Hub wordt geen adres opgegeven
docker login
Vervolgens moet de afbeelding opnieuw getagd worden zodat deze overeenkomt met het registeradres:
# docker tag <lokale_naam>:<tag> <register_adres>/<repository_naam>:<tag>
# Voor Docker Hub, als de gebruiker 'myuser' is
docker tag my-nginx-image:latest myuser/my-nginx-image:latest
En tot slot, de afbeelding pushen naar het register:
# docker push <register_adres>/<repository_naam>:<tag>
# Voor Docker Hub
docker push myuser/my-nginx-image:latest
Het bouw- en pushproces wordt vaak geautomatiseerd met CI/CD-systemen (Jenkins, GitLab CI, GitHub Actions, etc.).