Junior
Wat is uw ervaring met Docker?
sobes.tech AI
Antwoord van AI
Meer dan 5 jaar actief gebruik van Docker in verschillende projecten.
De ervaring omvat:
- Ontwikkeling van Dockerfile: Het maken van geoptimaliseerde en multi-stage Dockerfiles voor het bouwen van applicatiebeelden (web, microservices, databases, enz.).
- Beheer van beelden: Werken met Docker Hub, privé-repositories (GitLab Registry, Nexus), tagging, versiebeheer, opschonen van ongebruikte beelden.
- Werken met containers: Starten, stoppen, opnieuw starten, statusmonitoring, logs bekijken, commando's uitvoeren binnen de container (
docker exec). - Docker Compose: Gebruik voor het definiëren en uitvoeren van multi-container applicaties, service-orchestratie, beheer van netwerken en volumes.
- Docker-netwerken: Begrip en configuratie van verschillende netwerkdrivers (bridge, host, overlay), maken van aangepaste netwerken voor isolatie van services.
- Docker-volumes: Gebruik van genummerde volumes en bind mounts voor gegevensopslag, bestandsoverdracht tussen host en container.
- Docker-beveiliging: Begrip van de basisprincipes van containerisolatie, gebruik van rootless Docker (indien mogelijk), scannen van beelden op kwetsbaarheden.
- Integratie met CI/CD: Opnemen van het bouwen en publiceren van Docker-beelden in CI/CD-pijplijnen (Jenkins, GitLab CI, GitHub Actions).
- Orkestratie (basiskennis): Algemeen begrip van de principes van Kubernetes (uitrollen van containers, pods, replicatie, services), ervaring met het uitvoeren van eenvoudige applicaties in minikube/Kind voor testen.
Voorbeelden van Docker Compose:
# docker-compose.yaml
version: '3.8'
services:
app:
build: . # Bouwen van het beeld uit de huidige directory
ports:
- "80:80" # Doorsturen van poort 80 van host naar poort 80 van container
environment:
DATABASE_URL: postgres://user:password@db:5432/mydatabase # Omgevingsvariabelen
depends_on:
- db # Afhankelijkheid van de db-service
db:
image: postgres:14 # Gebruik van de standaard postgres-afbeelding
volumes:
- db_data:/var/lib/postgresql/data # Persistente volume voor gegevens
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
volumes:
db_data: # Definitie van het genummerde volume