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

Docker-volumes en -netwerken beheren

Docker-volumes en -netwerken beheren: een artikel over het beheren van Docker-volumes en -netwerken voor persistente gegevens en veilige servicecommunicatie.

Docker Volumes en Netwerken Beheren

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

Vereisten

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

Stappen

1. Maak een named volume aan voor persistente gegevens 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 een duidelijke scheiding.

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

3. Maak een user-defined bridge netwerk aan In plaats van het standaard netwerk gebruikt u 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 rechtstreeks 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 langer aan een container gekoppeld zijn, blijven schijfruimte innemen. Maak ze regelmatig schoon. docker volume prune

8. Gebruik volume plugins voor multi-host setups Voor clusters (Docker Swarm, Kubernetes) gebruikt u externe opslag via plugins. Dit maakt volumemigratie 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 bevinden zich niet in hetzelfde user-defined netwerk. Oplossing: Voeg beide services expliciet toe aan hetzelfde named netwerk in `docker-compose.yml`.

2. Gegevens verdwijnen na verwijdering van de container Oorzaak: Gebruik van container-interne opslag in plaats van een volume. Oplossing: Definieer een named volume en koppel dit aan de service. Het committen van containers is geen vervanging.

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

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

← Terug naar kennisbank