Kennisbank › Docker › docker volumes en netwerken beheren
docker gevorderd 01 June 2026

docker volumes en netwerken beheren

Docker Volumes en Netwerken BeherenDit artikel legt uit hoe je Docker volumes en netwerken beheert voor persistente data en veilige servicecommunicatie in

Docker Volumes en Netwerken Beheren

Dit artikel legt uit hoe je Docker volumes en netwerken beheert voor persistente data en veilige servicecommunicatie in multi-container applicaties.

Vereisten

- Docker Engine 24.0 of hoger - Docker Compose V2 (ingebouwd in Docker Desktop of los geïnstalleerd) - Basiskennis van Docker containers en `docker-compose.yml` - Terminal of CLI met `docker` commando beschikbaar

Stappen

1. Maak een named volume aan voor persistente data Gebruik `docker volume create` in plaats van bind mounts. Dit geeft Docker volledig beheer over de opslag. docker volume create mijn-data

2. Definieer volumes declaratief in docker-compose.yml Voeg een top-level `volumes` sectie toe en koppel deze aan een service. Dit zorgt voor reproduceerbaarheid en duidelijke scheiding.

volumes:
     db-data:
   
   services:
     database:
       image: postgres:16
       volumes:
         - db-data:/var/lib/postgresql/data

3. Maak een user-defined bridge network aan In plaats van het default netwerk gebruik je een named netwerk voor betere DNS-resolutie en isolatie.

networks:
     app-net:
       driver: bridge

4. Koppel services aan het netwerk Geef aan welke services met elkaar moeten communiceren. Een database hoeft niet direct bereikbaar te zijn voor de buitenwereld.

services:
     web:
       image: nginx:latest
       networks:
         - app-net
     database:
       image: postgres:16
       networks:
         - app-net

5. Isoleer een netwerk met `internal: true` Gebruik dit voor databases of backend-services die geen internettoegang nodig hebben.

networks:
     internal-net:
       driver: bridge
       internal: true

6. Voeg een service toe aan meerdere netwerken Een applicatieservice kan bijvoorbeeld zowel in een publiek als een intern netwerk zitten.

services:
     app:
       image: my-app:latest
       networks:
         - frontend-net
         - backend-net

7. Ruim ongebruikte volumes op Volumes die niet meer aan een container gekoppeld zijn, blijven schijfruimte innemen. Maak ze periodiek schoon. docker volume prune

8. Gebruik volume plugins voor multi-host setups Voor clusters (Docker Swarm, Kubernetes) gebruik je externe storage via plugins. Dit maakt volume migratie tussen hosts mogelijk.

volumes:
     shared-data:
       driver: nfs
       driver_opts:
         server: nfs-server.example.com
         path: /exports/data

Verificatie

Controleer of volumes correct zijn aangemaakt en netwerken functioneren:

Lijst alle volumes
docker volume ls</p><p>Inspecteer een volume
docker volume inspect mijn-data</p><p>Toon netwerken en aangesloten containers
docker network ls
docker network inspect app-net

Test DNS-resolutie tussen services: docker compose exec web ping database

Veelgestelde problemen

1. Container kan andere service niet vinden op hostnaam Oorzaak: Services zitten niet in hetzelfde user-defined netwerk. Oplossing: Voeg beide services expliciet toe aan hetzelfde named netwerk in `docker-compose.yml`.

2. Data verdwijnt na container verwijdering Oorzaak: Gebruik van container-internal storage in plaats van een volume. Oplossing: Definieer een named volume en koppel dit aan de service. Committen van containers is geen vervanging.

3. Volume ruimte raakt vol, maar container draait nog Oorzaak: Ongebruikte volumes blijven bestaan. Oplossing: Draai `docker volume prune` regelmatig of automatiseer dit in een cronjob. Voeg `--filter` toe om specifieke volumes te behouden.

Veelvoorkomende fouten ontstaan door het mixen van bind mounts en volumes in dezelfde applicatie — kies één strategie en blijf daarbij.

← Terug naar kennisbank