Day 13 Challenge: Mastering Docker Volumes for Persistent Applications
Shina Gupta
DevOps Engineer || AzureDevops CICD pipelines implemented || Kubernetes || Docker || Terraform || Ansible || Linux Shell Scripting || Ex-HCLite || Ex-TCS || Team Player || Knowledge Seeker ||
DevOps SRE Daily Challenge! started by Sagar Utekar
??? Persisting Data for Yelb Components with Docker Volumes
?? Why Persist Data?
By default, when a container stops or is removed, all data stored inside it is lost. Docker Volumes help persist data, so it survives container restarts and removals.
? Create and use Docker volumes for PostgreSQL and Redis.
? Verify data persistence even after stopping and removing containers.
Step 1: Create Docker Volumes
docker volume create pg-data
docker volume create redis-data
Step 2: Run PostgreSQL Container with Persistent Storage
docker run --name yelb-db -v pg-data:/var/lib/postgresql/data -p 5432:5432 -d mreferre/yelb-db:0.6
Step 3: Run Redis Container with Persistent Storage
docker run --name redis-server -v redis-data:/data -p 6379:6379 -d redis:4.0.2
Step 4: Check running containers and then, add some data
docker exec -it (redis-container) redis-cli
HSET user:2 name "Nikhil" age "34"
HGETALL user:2
Step 5: Stop and Remove Containers
Step 5: Restart Containers and Verify Data Persistence
docker volume inspect pg-data
docker volume inspect redis-data
?? Conclusion
Using Docker Volumes, we ensured that data stored in PostgreSQL and Redis survives even after container restarts. This technique is crucial for running stateful applications in containerized environments like Kubernetes.