Image Overview: redis

Overview: redis Chainguard Image

Minimalist Wolfi-based Redis image.

Download this Image

The image is available on cgr.dev:

docker pull cgr.dev/chainguard/redis:latest

Minimalist Wolfi-based Redis image.

Redis is an in-memory database that persists on disk.

The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.

Image Variants

Our latest tag use the most recent build of the Wolfi Redis package. The latest tagged variant is a distroless image for running Redis.

Redis Version

This will automatically pull the image to your local system and execute the command redis --version:

docker run --rm cgr.dev/chainguard/redis --version

You should see output similar to this:

Redis server v=7.0.8 sha=00000000:0 malloc=libc bits=64 build=736cb94cbb0b299

Using Redis

The default redis port is 6379. To run with Docker using default configuration:

docker run -p 6379:6379 --rm cgr.dev/chainguard/redis
1:C 27 Dec 2022 16:42:20.647 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 27 Dec 2022 16:42:20.647 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 27 Dec 2022 16:42:20.647 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 27 Dec 2022 16:42:20.648 * monotonic clock: POSIX clock_gettime
1:M 27 Dec 2022 16:42:20.648 * Running mode=standalone, port=6379.
1:M 27 Dec 2022 16:42:20.648 # Server initialized
1:M 27 Dec 2022 16:42:20.650 * Ready to accept connections

Users and Directories

By default this image runs as a non-root user named redis with a uid of 65532. Redis does not have a default data directory, it defaults to whatever the working directory is for the process. We provide a default WORKDIR of /data that is writeable by the redis user.

If you supply a different configuration file or change the user, UID, or WORKDIR, you’ll need to ensure the user running the redis process has permissions to write to that directory.

When running in Docker using a volume, that should also be taken care of automatically. Here’s an example of using a host volume:

% docker run -d -v $(pwd):/data -p 6379:6379 redis
d029bfb291c7a00618342ab26702dc3788cfda24b85208de04464ccb06681797
$ redis-cli set foo bar
OK
$ redis-cli save
OK
$ redis-cli get foo
"bar"
$ docker kill d029bfb291c7a00618342ab26702dc3788cfda24b85208de04464ccb06681797
d029bfb291c7a00618342ab26702dc3788cfda24b85208de04464ccb06681797
$ docker run -d -v $(pwd):/data -p 6379:6379 redis
29845f88b862d8e337cf8183e8fb6ac1bd9b43c4ec2de37111bfe08b227e1caa
$ redis-cli get foo
"bar"

Last updated: 2024-04-11 12:38