Docker Cheat Sheet Series (3/5): Volumes + Networks

Docker Cheat Sheet Series (3/5): Volumes + Networks
Flat illustration of Docker named volumes for persistent data and a user-defined network connecting an API container to a DB container, with backup and restore commands shown in a terminal.

Short scenarios. Copy/paste commands. Minimal notes.

Use a named volume for persistent data

Goal: Keep data even if the container is removed.

docker volume create mydata

docker run --rm -d \
  --name db \
  -e POSTGRES_PASSWORD=postgres \
  -v mydata:/var/lib/postgresql/data \
  postgres:16

Notes

  • Named volumes are managed by Docker (preferred for databases).

Backup a volume to a tar file

Goal: Export volume contents for backup or migration.

docker run --rm \
  -v mydata:/data \
  -v "$PWD":/backup \
  alpine:3.20 \
  sh -c "tar -czf /backup/mydata.tar.gz -C /data ."

Notes

  • The backup file lands in your current directory.

Restore a volume from a tar backup

Goal: Rehydrate a volume from an existing archive.

docker volume create mydata_restored

docker run --rm \
  -v mydata_restored:/data \
  -v "$PWD":/backup \
  alpine:3.20 \
  sh -c "tar -xzf /backup/mydata.tar.gz -C /data"

Notes

  • Restore into an empty volume to avoid mixing data.

Create a user-defined network and connect services

Goal: Let containers talk to each other by name.

docker network create appnet

docker run --rm -d \
  --name db \
  --network appnet \
  -e POSTGRES_PASSWORD=postgres \
  postgres:16

docker run --rm -d \
  --name api \
  --network appnet \
  -e DATABASE_HOST=db \
  myapp:local

Notes

  • On a user-defined network, db is resolvable via DNS automatically.

Inspect + targeted cleanup (volumes/networks)

Goal: See what exists and remove only what you intend.

docker volume ls
docker volume inspect mydata

docker network ls
docker network inspect appnet

# remove when done
docker stop db api 2>/dev/null || true
docker volume rm mydata mydata_restored
docker network rm appnet

Notes

  • Remove volumes only if you’re sure you don’t need the data.

Read more