From 8da2c74ae50b4d2309d29cc0183e99b8a7ffa6db Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Tue, 5 Nov 2013 14:28:57 -0600 Subject: [PATCH] Removed redundant linking example Upstream-commit: e88368b34cab8d4b7d5a1179cdd25fc9cd2b3d79 Component: engine --- .../engine/docs/sources/examples/index.rst | 1 - .../sources/examples/linking_into_redis.rst | 137 ------------------ 2 files changed, 138 deletions(-) delete mode 100644 components/engine/docs/sources/examples/linking_into_redis.rst diff --git a/components/engine/docs/sources/examples/index.rst b/components/engine/docs/sources/examples/index.rst index 6167e35652..ea3294d2d3 100644 --- a/components/engine/docs/sources/examples/index.rst +++ b/components/engine/docs/sources/examples/index.rst @@ -24,4 +24,3 @@ to more substantial services like those which you might find in production. postgresql_service mongodb running_riak_service - linking_into_redis diff --git a/components/engine/docs/sources/examples/linking_into_redis.rst b/components/engine/docs/sources/examples/linking_into_redis.rst deleted file mode 100644 index 1b91b8451d..0000000000 --- a/components/engine/docs/sources/examples/linking_into_redis.rst +++ /dev/null @@ -1,137 +0,0 @@ -:title: Linking to an Redis container -:description: Running redis linked into your web app -:keywords: docker, example, networking, redis, link - -.. _linking_redis: - -Linking Redis -============= - -.. include:: example_header.inc - -Building a Redis container to link as a child of our web application. - -Building the Redis container ----------------------------- - -Lets build a Redis image with the following Dockerfile. - -First checkout the Redis source code. - -.. code-block:: bash - - git clone https://github.com/antirez/redis.git - cd redis - git checkout 2.6 - - -Now let's create a Dockerfile in the root of the Redis repository. - -.. code-block:: bash - - # Build redis from source - # Make sure you have the redis source code checked out in - # the same directory as this Dockerfile - FROM ubuntu - - RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list - RUN apt-get update - RUN apt-get upgrade -y - - RUN apt-get install -y gcc make g++ build-essential libc6-dev tcl - - ADD . /redis - - RUN (cd /redis && make) - - RUN mkdir -p /redis-data - VOLUME ["/redis-data"] - EXPOSE 6379 - - ENTRYPOINT ["/redis/src/redis-server"] - CMD ["--dir", "/redis-data"] - - # docker build our new redis image from source - docker build -t redis-2.6 . - - -We need to ``EXPOSE`` the default port of 6379 so that our link knows what ports -to connect to our Redis container on. If you do not expose any ports for the -image then docker will not be able to establish the link between containers. - - -Run the Redis container ------------------------ - -.. code-block:: bash - - sudo docker run -d -e PASSWORD=docker -name redis redis-2.6 --requirepass docker - -This will run our Redis container with the password docker -to secure our service. By specifying the ``-name`` flag on run -we will assign the name ``redis`` to this container. If we do not specify a name for -our container via the ``-name`` flag docker will automatically generate a name for us. -We can issue all the commands that you would expect; start, stop, attach, using the name for our container. -The name also allows us to link other containers into this one. - -Linking Redis as a child ------------------------- - -Next we can start a new web application that has a dependency on Redis and apply a link -to connect both containers. If you noticed when running our Redis server we did not use -the ``-p`` flag to publish the Redis port to the host system. Redis exposed port 6379 via the Dockerfile -and this is all we need to establish a link. - -Now let's start our web application with a link into Redis. - -.. code-block:: bash - - sudo docker run -t -i -link redis:db -name webapp ubuntu bash - - root@4c01db0b339c:/# env - - HOSTNAME=4c01db0b339c - DB_NAME=/webapp/db - TERM=xterm - DB_PORT=tcp://172.17.0.8:6379 - DB_PORT_6379_TCP=tcp://172.17.0.8:6379 - DB_PORT_6379_TCP_PROTO=tcp - DB_PORT_6379_TCP_ADDR=172.17.0.8 - DB_PORT_6379_TCP_PORT=6379 - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - PWD=/ - DB_ENV_PASSWORD=docker - SHLVL=1 - HOME=/ - container=lxc - _=/usr/bin/env - root@4c01db0b339c:/# - - -When we inspect the environment of the linked container we can see a few extra environment -variables have been added. When you specified ``-link redis:db`` you are telling docker -to link the container named ``redis`` into this new container with the alias ``db``. -Environment variables are prefixed with the alias so that the parent container can access -network and environment information from the containers that are linked into it. - -.. code-block:: bash - - # The name of the child container - DB_NAME=/webapp/db - - # The default protocol, ip, and port of the service running in the container - DB_PORT=tcp://172.17.0.8:6379 - - # A specific protocol, ip, and port of various services - DB_PORT_6379_TCP=tcp://172.17.0.8:6379 - DB_PORT_6379_TCP_PROTO=tcp - DB_PORT_6379_TCP_ADDR=172.17.0.8 - DB_PORT_6379_TCP_PORT=6379 - - # Get environment variables of the container - DB_ENV_PASSWORD=docker - - -Accessing the network information along with the environment of the child container allows -us to easily connect to the Redis service on the specific IP and port and use the password -specified in the environment.