# What is Redis? Redis is an open-source, networked, in-memory, key-value data store with optional durability. It is written in ANSI C. The development of Redis has been sponsored by Pivotal since May 2013; before that, it was sponsored by VMware. According to the monthly ranking by DB-Engines.com, Redis is the most popular key-value store. The name Redis means REmote DIctionary Server. > [wikipedia.org/wiki/Redis](https://en.wikipedia.org/wiki/Redis) # How to use this image ## start a redis instance docker run --name some-redis -d redis This image includes `EXPOSE 6379` (the redis port), so standard container linking will make it automatically available to the linked containers (as the following examples illustrate). ## start with persistent storage docker run --name some-redis -d redis redis-server --appendonly yes If persistence is enabled, data is stored in the `VOLUME /data`, which can be used with `--volumes-from some-volume-container` or `-v /docker/host/dir:/data` (see [docs.docker volumes](http://docs.docker.com/userguide/dockervolumes/)). For more about Redis Persistence, see [http://redis.io/topics/persistence](http://redis.io/topics/persistence). ## connect to it from an application docker run --name some-app --link some-redis:redis -d application-that-uses-redis ## ... or via `redis-cli` docker run -it --link some-redis:redis --rm redis sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"' ## Additionally, If you want to use your own redis.conf ... You can create your own Dockerfile that adds a redis.conf from the context into /data/, like so. FROM redis redis.conf /data/ CMD [ "redis-server", "/data/redis.conf" ] Alternatively, you can specify something along the same lines with `docker run` options. ocker run --volumes-from datacontainer --name myredis redis Using this method means that there is no need for you to have a Dockerfile for your redis container.