github.com/guilhermebr/docker@v1.4.2-0.20150428121140-67da055cebca/docs/sources/examples/running_redis_service.md (about)

     1  page_title: Dockerizing a Redis service
     2  page_description: Installing and running an redis service
     3  page_keywords: docker, example, package installation, networking, redis
     4  
     5  # Dockerizing a Redis service
     6  
     7  Very simple, no frills, Redis service attached to a web application
     8  using a link.
     9  
    10  ## Create a Docker container for Redis
    11  
    12  Firstly, we create a `Dockerfile` for our new Redis
    13  image.
    14  
    15      FROM        ubuntu:14.04
    16      RUN         apt-get update && apt-get install -y redis-server
    17      EXPOSE      6379
    18      ENTRYPOINT  ["/usr/bin/redis-server"]
    19  
    20  Next we build an image from our `Dockerfile`.
    21  Replace `<your username>` with your own user name.
    22  
    23      $ docker build -t <your username>/redis .
    24  
    25  ## Run the service
    26  
    27  Use the image we've just created and name your container `redis`.
    28  
    29  Running the service with `-d` runs the container in detached mode, leaving
    30  the container running in the background.
    31  
    32  Importantly, we're not exposing any ports on our container. Instead
    33  we're going to use a container link to provide access to our Redis
    34  database.
    35  
    36      $ docker run --name redis -d <your username>/redis
    37  
    38  ## Create your web application container
    39  
    40  Next we can create a container for our application. We're going to use
    41  the `-link` flag to create a link to the `redis` container we've just
    42  created with an alias of `db`. This will create a secure tunnel to the
    43  `redis` container and expose the Redis instance running inside that
    44  container to only this container.
    45  
    46      $ docker run --link redis:db -i -t ubuntu:14.04 /bin/bash
    47  
    48  Once inside our freshly created container we need to install Redis to
    49  get the `redis-cli` binary to test our connection.
    50  
    51      $ sudo apt-get update
    52      $ sudo apt-get install redis-server
    53      $ sudo service redis-server stop
    54  
    55  As we've used the `--link redis:db` option, Docker
    56  has created some environment variables in our web application container.
    57  
    58      $ env | grep DB_
    59  
    60      # Should return something similar to this with your values
    61      DB_NAME=/violet_wolf/db
    62      DB_PORT_6379_TCP_PORT=6379
    63      DB_PORT=tcp://172.17.0.33:6379
    64      DB_PORT_6379_TCP=tcp://172.17.0.33:6379
    65      DB_PORT_6379_TCP_ADDR=172.17.0.33
    66      DB_PORT_6379_TCP_PROTO=tcp
    67  
    68  We can see that we've got a small list of environment variables prefixed
    69  with `DB`. The `DB` comes from the link alias specified when we launched
    70  the container. Let's use the `DB_PORT_6379_TCP_ADDR` variable to connect to
    71  our Redis container.
    72  
    73      $ redis-cli -h $DB_PORT_6379_TCP_ADDR
    74      $ redis 172.17.0.33:6379>
    75      $ redis 172.17.0.33:6379> set docker awesome
    76      OK
    77      $ redis 172.17.0.33:6379> get docker
    78      "awesome"
    79      $ redis 172.17.0.33:6379> exit
    80  
    81  We could easily use this or other environment variables in our web
    82  application to make a connection to our `redis`
    83  container.