DirectorySecurity Advisories
Sign In
Directory
redis logo

redis

Last changed

Try the Latest Version for Free
docker pull cgr.dev/chainguard/redis

Need access to a specific version? Contact us.

Create your Free Account

Be the first to hear about exciting product updates, critical vulnerability alerts, compare alternative images, and more.

Sign Up
Versions
Overview
Provenance
Specifications
SBOM
Vulnerabilities
Advisories

Chainguard Image for redis

Chainguard image for Redis, an in-memory database that persists on disk. Redis is a key-value store, supporting an array of different values, including Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, and Bitmaps.

Chainguard Images are regularly-updated, minimal container images with low-to-zero CVEs.

Download this Image

This image is available on cgr.dev:

docker pull cgr.dev/ORGANIZATION/redis:latest

Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard registry.

Compatibility Notes

The Chainguard Redis image is comparable to the official Redis image on Docker Hub.

Unlike many other Chainguard images, the Redis image includes a shell, allowing you to interact with the Redis database using the Redis command-line interface, redis-cli.

By default this image runs as a non-root user named redis with a uid of 65532. Typically, Redis does not have a default data directory and instead defaults to whatever the working directory is for the Redis process. The Chainguard Redis image provides a default working directory of /data that is writeable by the redis user.

Important license update

Redis version 7.4 and subsequent releases are no longer licensed under BSD-3-Clause; instead, the Redis project has adopted a dual licensing model. This means users have the choice to adopt either the Redis Source Available License v2 (RSALv2) or the Server Side Public License v1 (SSPLv1).

Please give careful consideration to these licensing conditions when using Redis. For more details, refer to the upstream license information.

Getting Started

Redis Version

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

To run the Chainguard Redis image with Docker using default configuration you could run the following command:

docker run -p 6379:6379 --rm cgr.dev/ORGANIZATION/redis

This command forwards port 6379 (the default port for Redis) on the host machine to port 6379 on the container:

1:C 25 Oct 2024 17:12:32.419 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 25 Oct 2024 17:12:32.419 * Redis version=7.4.1, bits=64, commit=74b289a0, modified=1, pid=1, just started
1:C 25 Oct 2024 17:12:32.419 # Warning: no config file specified, using the default config. In order to specify a config file use /usr/bin/redis-server /path/to/redis.conf
1:M 25 Oct 2024 17:12:32.420 * monotonic clock: POSIX clock_gettime
1:M 25 Oct 2024 17:12:32.420 * Running mode=standalone, port=6379.
1:M 25 Oct 2024 17:12:32.421 * Server initialized
1:M 25 Oct 2024 17:12:32.421 * Ready to accept connections tcp

Following that, you can open another terminal and use redis-cli locally. Any commands you run through it will be forwarded to the redis process in the container:

$ redis-cli set test 10
OK
$ redis-cli get test
"10"
$ redis-cli
127.0.0.1:6379>

Alternatively, to test out Redis within the container, you can run the following command to access the container's shell:

docker run -it --entrypoint sh cgr.dev/ORGANIZATION/redis

Then run the redis-server command to start the redis process, and include the --daemonize yes option to prevent it from taking over the terminal:

/data $ redis-server --daemonize yes

Following that, you can run redis-cli, the Redis command-line interface, and begin testing the database:

/data $ redis-cli
127.0.0.1:6379> set test 20
OK
127.0.0.1:6379> get test
"20"

Configuration

If you supply a different configuration file or change the user, UID, or WORKDIR instruction, you'll need to ensure the user running the redis process has permissions to access the relevant redis.conf and dumb.rb files.

When running in Docker using a volume, the Chainguard Redis image will automatically use a custom configuration instead of the default one. Here's an example that mounts a host volume containing a custom Redis configuration to the /data directory in the container:

docker run -d -v $(pwd):/data -p 6379:6379 cgr.dev/ORGANIZATION/redis

Again, this example forwards the local port 6379 to the container's port 6379, the redis process's default port.

Following that, you can run redis-cli commands from your local machine which are then forwarded to the container:

$ redis-cli set foo bar
OK
$ redis-cli get foo
"bar"

You can also open the redis-cli prompt locally and forward commands to the container from there:

$ redis-cli
127.0.0.1:6379> get foo
"bar"

Documentation and Resources

Contact Support

If you have a Zendesk account (typically set up for you by your Customer Success Manager) you can reach out to Chainguard's Customer Success team through our Zendesk portal.

What are Chainguard Images?

Chainguard Images are a collection of container images designed for security and minimalism.

Many Chainguard Images are distroless; they contain only an open-source application and its runtime dependencies. These images do not even contain a shell or package manager. Chainguard Images are built with Wolfi, our Linux undistro designed to produce container images that meet the requirements of a secure software supply chain.

The main features of Chainguard Images include:

-dev Variants

As mentioned previously, Chainguard’s distroless Images have no shell or package manager by default. This is great for security, but sometimes you need these things, especially in builder images. For those cases, most (but not all) Chainguard Images come paired with a -dev variant which does include a shell and package manager.

Although the -dev image variants have similar security features as their distroless versions, such as complete SBOMs and signatures, they feature additional software that is typically not necessary in production environments. The general recommendation is to use the -dev variants only to build the application and then copy all application artifacts into a distroless image, which will result in a final container image that has a minimal attack surface and won’t allow package installations or logins.

That being said, it’s worth noting that -dev variants of Chainguard Images are completely fine to run in production environments. After all, the -dev variants are still more secure than many popular container images based on fully-featured operating systems such as Debian and Ubuntu since they carry less software, follow a more frequent patch cadence, and offer attestations for what they include.

Learn More

To better understand how to work with Chainguard Images, we encourage you to visit Chainguard Academy, our documentation and education platform.

Licenses

Chainguard Images contain software packages that are direct or transitive dependencies. The following licenses were found in the "latest" version of this image:

  • Apache-2.0

  • GCC-exception-3.1

  • GPL-2.0-only

  • GPL-2.0-or-later

  • GPL-3.0-or-later

  • LGPL-2.1-or-later

  • MIT

For a complete list of licenses, please refer to this Image's SBOM.

Software license agreement

Compliance

A FIPS validated version of this image is available for FedRAMP compliance. STIG is included with FIPS image.


Related images

Category
application

Safe Source for Open Sourceâ„¢
Media KitContact Us
© 2024 Chainguard. All Rights Reserved.
Private PolicyTerms of Use

Product

Chainguard Images