Meer informatie voer Docker volumes
Een nadeel van docker containers is dat zodra de container wordt verwijderd de data binnen de containers ook verwijderd is. In productieomgevingen komt het met regelmaat voor dat het deployen van een nieuwe versie ook betekent dat de huidige containers worden verwijderd. Als de database of andere belangrijke informatie binnen de container wordt opgeslagen, betekent dit dus dat deze informatie verloren gaat.
Om dit tegen te gaan, kan je ervoor kiezen om een volume
aan een container te koppelen. Een volume is een externe locatie waar bestanden en informatie in kunnen worden opgeslagen. Een extra voordeel van volumes is dat het erg makkelijk is om bestanden tussen containers te delen. Denk hierbij bijvoorbeeld aan logbestanden, geüploade documenten, een database, etc.
In deze opdracht zal je toevoegingen doen aan een docker compose om te zorgen dat een volume juist wordt gebruikt.
Opdracht 3: Docker volumes
Stap 1: Open de directory Docker-Demo-Project/studentversie/opdracht3
Stap 2: Open de docker-compose.yaml
.
Stap 3: Voeg de volgende regels toe aan de chatterbox
service
volumes:
- files:/app/files
Stap 4: Voeg de volgende regel toe aan de loglens
service
volumes:
- files:/app/files
Stap 5: Voeg de volgende regels toe aan het einde van het docker-compose.yaml
bestand.
volumes:
files:
Antwoord - Volledige docker-compose
version: "3.8" services: chatterbox: build: context: ./chatterbox/chatterbox/ dockerfile: ./Dockerfile ports: - "6080:8080" - "6081:8081" restart: always develop: watch: - action: rebuild path: ./chatterbox/ volumes: - files:/app/files user: root loglens: build: context: ./loglens/loglens/ dockerfile: ./Dockerfile ports: - "7080:8080" - "7081:8081" restart: always develop: watch: - action: rebuild path: ./loglens/ volumes: - files:/app/files user: root volumes: files:
Stap 6: Open een CMD/Terminal en navigeer naar de directory van Docker-Demo-Project/studentversie/opdracht3
Stap 7: Run de volgende commando in je CMD/Terminal om je docker containers te builden en op te starten
docker compose watch
Stap 8: Ga naar http://localhost:6080/ en http://localhost:7080/ en kijk of de website wordt ingeladen.
Stap 9: Verstuur een aantal berichten en kijk of het bericht op de pagina wordt getoond.
Stap 10: Ga naar de tweede pagina en kijk of het bericht na een refresh ook wordt getoond.
Stap 11: Open docker desktop en kijk onder het kopje Volumes of er een volume met de naam opdracht3_files
is gemaakt.
Stap 12: Open de volume en kijk of er een bestand genaamd messages.txt
aanwezig is.
Stap 13: Open het bestand en kijk of de inhoud overeenkomt met de berichten die je bij stap 9 hebt verstuurd.
Stap 14: Open de CMD/Terminal die je bij stap 6 hebt gebruikt en stop het actieve command door tegelijkertijd ctrl
en c
in te drukken of door de CMD/Terminal te sluiten.
Stap 15: Stop en verwijder de containers door binnen Docker Desktop onder Containers op de stop en delete knop te klikken.
Stap 16: Start het project nu opnieuw door stap 6 en 7 opnieuw te doen.
Stap 17: Ga naar de website zoals je bij stap 8 hebt gedaan en kijk of dezelfde berichten zoals je deze bij stap 9 hebt verstuurd nog aanwezig zijn.
Gelukt
- Het is gelukt om een docker volume toe te voegen aan een bestaand project.
- Het is gelukt het project op te starten door
docker compose watch
uit te voeren.- Het is gelukt om berichten te versturen via de eerste applicatie en in te zien in de tweede applicatie
- Het is gelukt om containers te verwijderen en opnieuw te builen
- Het is gelukt om informatie tussen containers uit te wisselen en opnieuw in te laden na het opnieuw builden
Volgende stap: 5. Docker environment