Docker/Redis Stack Cheatsheet

Build Container

docker compose build [--no-cache] redis redisinsight

Start Container

Instead of using docker compose up use the compose-wrapper:

./scripts/compose-wrapper.sh up [-d] redis redisinsight

This wrapper injects pass secrets to docker via the host tmpfs /dev/shm. To remove all secrets from the tmpfs run

./scripts/compose-wrapper.sh down

Container status/logs

docker compose ps
docker compose logs -f redis

Connect to Redis-CLI

With redis container running and healthy:

docker compose exec redis sh -c 'redis-cli \
  --tls \
  --cacert /run/secrets/ca.pem \
  --cert /run/secrets/app.pem \
  --key /run/secrets/app.key \
  --user app \
  -a "$(cat /run/secrets/app_password)" \
  --no-auth-warning \
  -p 6380'

Check resource usage

docker stats health-redis

Check health

docker inspect --format='{{json .State.Health}}' $(docker compose ps -q redis) | jq

Container stoppen / entfernen

./scripts/compose-wrapper.sh down redis redisinsight          # stoppt Container, Volume bleibt erhalten
./scripts/compose-wrapper.sh down -v redis redisinsight       # stoppt Container UND löscht das Volume (Datenverlust!)

Backup

Create a dump.rdb via the redis-cli:

docker compose exec redis sh -c 'redis-cli \
  --tls \
  --cacert /run/secrets/ca.pem \
  --cert /run/secrets/app.pem \
  --key /run/secrets/app.key \
  --user app \
  -a "$(cat /run/secrets/app_password)" \
  --no-auth-warning \
  -p 6380 \
  BGSAVE'

Find the mount point via

docker volume inspect health_redis-data

and copy the file via

sudo cp /mount/point/path/dump.rdb /backup/path/dump_name.rdb