update docker.go move to pkg update docs update name and copyright change --sinceId to --since-id, update completion and docs Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor@docker.com> (github: vieux)
3.0 KiB
- title
- Running a Redis service
- description
- Installing and running an redis service
- keywords
- docker, example, package installation, networking, redis
Redis Service
Very simple, no frills, Redis service attached to a web application using a link.
Create a docker container for Redis
Firstly, we create a Dockerfile for our new Redis
image.
FROM ubuntu:12.10
RUN apt-get update
RUN apt-get -y install redis-server
EXPOSE 6379
ENTRYPOINT ["/usr/bin/redis-server"]Next we build an image from our Dockerfile. Replace
<your username> with your own user name.
sudo docker build -t <your username>/redis .Run the service
Use the image we've just created and name your container
redis.
Running the service with -d runs the container in
detached mode, leaving the container running in the background.
Importantly, we're not exposing any ports on our container. Instead we're going to use a container link to provide access to our Redis database.
sudo docker run --name redis -d <your username>/redisCreate your web application container
Next we can create a container for our application. We're going to
use the -link flag to create a link to the
redis container we've just created with an alias of
db. This will create a secure tunnel to the
redis container and expose the Redis instance running
inside that container to only this container.
sudo docker run --link redis:db -i -t ubuntu:12.10 /bin/bashOnce inside our freshly created container we need to install Redis to
get the redis-cli binary to test our connection.
apt-get update
apt-get -y install redis-server
service redis-server stopNow we can test the connection. Firstly, let's look at the available
environmental variables in our web application container. We can use
these to get the IP and port of our redis container.
env
. . .
DB_NAME=/violet_wolf/db
DB_PORT_6379_TCP_PORT=6379
DB_PORT=tcp://172.17.0.33:6379
DB_PORT_6379_TCP=tcp://172.17.0.33:6379
DB_PORT_6379_TCP_ADDR=172.17.0.33
DB_PORT_6379_TCP_PROTO=tcpWe can see that we've got a small list of environment variables
prefixed with DB. The DB comes from the link
alias specified when we launched the container. Let's use the
DB_PORT_6379_TCP_ADDR variable to connect to our Redis
container.
redis-cli -h $DB_PORT_6379_TCP_ADDR
redis 172.17.0.33:6379>
redis 172.17.0.33:6379> set docker awesome
OK
redis 172.17.0.33:6379> get docker
"awesome"
redis 172.17.0.33:6379> exitWe could easily use this or other environment variables in our web
application to make a connection to our redis
container.