Sobes.tech
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