redis/redis-stack-server - Docker Image
Run Redis Stack on Docker
How to install Redis Stack using Docker
To get started with Redis Stack using Docker, you first need to select a Docker image:
-
redis/redis-stackcontains both Redis Stack server and RedisInsight. This container is best for local development because you can use RedisInsight to visualize your data. -
redis/redis-stack-serverprovides Redis Stack but excludes RedisInsight. This container is best for production deployment.
Getting started
In the default configuration, Redis does not require a password to authenticate clients. To provide basic security for your Redis Stack server, it is recommended to set a password using the requirepass directive. Configure this using an environment variable when starting the container:
To start Redis Stack server using the redis-stack-server image, run the following command in your terminal:
docker run -d --name redis-stack -p 6379:6379 -e REDIS_ARGS="--requirepass mypassword" redis/redis-stack-server:latest
You can then connect to the server using redis-cli, just as you connect to any Redis instance.
If you don’t have redis-cli installed locally, you can run it from the Docker container:
$ docker exec -it redis-stack redis-cli
Redis Stack supports the ability to configure multiple named users, each with their own password and access control configuration. Refer to the Redis Access Control List documentation for more information.
Configuration
Persistence
To persist your Redis data to a local path, specify -v to configure a local volume. This command stores all data in the local directory local-data:
$ docker run -v /local-data/:/data redis/redis-stack-server:latest
Ports
If you want to expose Redis Stack server or RedisInsight on a different port, update the left hand of portion of the -p argument. This command exposes Redis Stack server on port 10001 and RedisInsight on port 13333:
$ docker run -p 10001:6379 -p 13333:8001 redis/redis-stack-server:latest
Config files
By default, the Redis Stack Docker containers use internal configuration files for Redis. To start Redis with local configuration file, you can use the -v volume options:
$ docker run -v `pwd`/local-redis-stack.conf:/redis-stack.conf -p 6379:6379 redis/redis-stack-server:latest
Environment variables
To pass in arbitrary configuration changes, you can set any of these environment variables:
-
REDIS_ARGS: extra arguments for Redis -
REDISEARCH_ARGS: arguments for RediSearch -
REDISJSON_ARGS: arguments for RedisJSON -
REDISGRAPH_ARGS: arguments for RedisGraph -
REDISTIMESERIES_ARGS: arguments for RedisTimeSeries -
REDISBLOOM_ARGS: arguments for RedisBloom
For example, here's how to use the REDIS_ARGS environment variable to pass the requirepass directive to Redis:
docker run -e REDIS_ARGS="--requirepass redis-stack" redis/redis-stack-server:latest
Here's how to set a retention policy for RedisTimeSeries:
docker run -e REDISTIMESERIES_ARGS="RETENTION_POLICY=20" redis/redis-stack-server:latest