Wat zijn Docker Volumes?
Een Docker Volume is een speciaal beheerde opslagruimte die buiten een container wordt beheerd. Hierdoor blijft de data die je erin opslaat behouden, ook als de container wordt verwijderd. Doordat de data buiten de container leeft, kun je deze eenvoudig delen tussen meerdere containers en zorgt dit voor een robuustere en flexibelere omgeving. Dit is vooral belangrijk voor applicaties die met persistente data werken, zoals databases of logbestanden.
Casus
Bij een bedrijf van Windesheim draait een applicatie in Docker die continu klantdata opslaat. Na het updaten van de container blijkt de data verdwenen te zijn.
Door over te stappen op Docker Volumes, wordt de data buiten de container opgeslagen. Hierdoor blijft deze behouden, ook na het vervangen van de container.
Hoe zitten Docker Volumes in elkaar?
Docker Volumes worden beheerd door de Docker Engine en vormen een aparte opslagruimte buiten de container. Ze worden onafhankelijk van een container aangemaakt en kunnen eenvoudig worden gekoppeld aan één of meerdere containers. Op deze manier is de data niet gekoppeld aan de levenscyclus van een enkele container en kun je data gemakkelijk delen tussen verschillende containers of opslaan zonder dat deze verloren gaat.
Codevoorbeeld
# Maak een volume aan
docker volume create mijn_volume
# Start een container en koppel het volume
docker run -d --name mijn_container -v mijn_volume:/data nginx
# Inspecteer het aangemaakte volume
docker volume inspect mijn_volume
Hoe gebruik je Docker Volumes?
Docker Volumes worden ingezet om data persistent en veilig op te slaan. Dit is van belang voor applicaties zoals databases, logbestanden en gebruikersdata, waar behoud van data cruciaal is. Volumes kunnen handmatig beheerd worden via de Docker CLI of automatisch worden ingericht met hulpmiddelen zoals Docker Compose, waarbij je in het docker-compose.yml bestand de volumes definieert en koppelt aan de betreffende containers.
Casus
Een ontwikkelaar moet een applicatie met een database deployen. Door een Docker Volume te gebruiken voor de databasegegevens blijft de data intact, ook als de container wordt herstart of vernieuwd.
Volgende stap: Stappen Docker Volumes