More on Linking Containers (Dan Wahlin)

    1. Communicating between containers

High Level, 2 methods

Legacy Linking - via naming convention

Bridge Network - container w/in bridge network can talk w/each other

      1. Legacy Linking
        1. 3 steps
          1. Each container to be linked must have a name

$ docker run -d --name <contName> <imageName>

Example: $ docker run -d --name my-mongodb mongo

          1. Link to running container by name

$ docker run -p 3000:3000 --link my-mongodb:mongodb danwal/node

This command runs danwal/postgres

Links danwal/node to my-mongodb

<contName>:<contAlias> - gives alias (‘mongodb’)

can use alias internally by linked containers (node)

Optional to give a named container an alias

          1. Repeat for additional containers
        • Example: Linking Node.js container to MongoDB container
          1. Run mongodb from image AND NAME THE CONTAINER

$ docker run -d --name my-mongodb mongo

          1. Run node from image & link to mongodb container (“my-mongodb”)

$ docker run -p 3000:3000 --link my-mongodb:mongodb dougwells/node

          1. Another example

$ docker run -p 3000:5000 -d --link redis dougwells/dockerapp:v0.3

          1. That’s it …
        • Testing networks
          1. Ping one container from server of another container in same network

$ docker exec -it python-app bash

/# ping redis (name or ip address of other container)

Network Linking (Creating an isolated network).

        1. AKA “Container Networking with a Bridge Driver”
        2. NOTE: if connecting more than 2 or 3 containers, likely better to use Docker Compose (see below)
        3. Note: Docker docs refers to networking as “Communicate between containers”
        4. Steps
          1. Create a bridge network
          2. Run containers w/in that network
          3. All containers within bridge network can “talk” with one another
          4. Note: containers can belong to more than one network
        5. Docker commands for creating bridge network & running containers in it
          1. Create network

$ docker network create --driver bridge isolated_network

create network bridge network network name

          1. Run containers from within the network

$ docker run -d --net=isolated_network --name mongodb mongo

$ docker run -d --net=isolated_network --name nodeapp -p 3000:3000 dougwells/node

results matching ""

    No results matching ""