DevOps Classroom Series – 28/Jun/2020

Docker Networking

  • References: Networking-1, Swarm, Networking-2

  • Docker containter network architecutre is built on set of interfaces/rules called as Container Networking Model (CNM) Preview

  • CNM Constructs:

    1. Sandbox: this is containers network stack with features such as container network interfaces, routing tables and DNS settings
    2. Endpoint: joins sandbox to network
    3. Network: Network is collection of endpoints with connectivity b/w them.
  • CNM Driver Interfaces Preview

  • CNM provides two pluggable and open interfaces

    • Network Driver
    • IPAM (IP Addresss Managment) Drivers
  • Native Network Drivers: docker has a section for network docker network Preview

  • Docker native network drivers:

    • Host: with host driver , a container uses the networking stack of host.
    • Bridge: This is default driver. Connecting multiple containers on the same bridge network in a single host. The containers created by default are connected to bridge network Preview
    • Overlay: This driver creates an overlay network to support multi-host containers.
    • MACVLAN:
    • None
  • Lets experiment.

    • Create a nginx container and execute docker inspect <container-id> Preview
    • now lets inspect bridge network docker network inspect bridge Preview

Bridge Network

  • In docker by default we will have a default bridge network with name bridge.
  • Lets create a new bridge (user-defined bridge)
docker network create --help
docker network create --driver bridge --subnet 10.10.0.0/24 mybridge

Preview

  • So lets create two container inside mybridge network
docker container run -d --name c1 --network mybridge alpine sleep 1d
docker container run -d --name c2 --network mybridge alpine sleep 1d

Preview

  • Lets find the ipaddress of the contianer
docker network inspect mybridge

Preview

  • Lets ping between container by name and ipaddress
docker container exec c1 ping -c 4 c2
docker container exec c1 ping -c 4 10.10.0.3

Preview

Docker Swarm

  • Docker swarm is docker native orchestration tool which helps in running containers on multi hosts.

  • In the below image assume we have mulitple hosts running containers on their bridge network. Preview

  • Communications between containers on same host are possible but not on multi-hosts Preview

  • In Docker swarm all the machines are referred as nodes. There are two kinds of nodes

    1. Manager node(s)
    2. worker nodes Preview
  • Lets create docker swarm by following steps mentioned over here in the swarm setup

  • Service, task and container Preview

  • Lets create a service to run 3 replicas of httpd in swarm manager

docker service create --replicas 2 --name httpd httpd 

Preview Preview

  • scale the containers Preview
  • create a docker service with ports exposed docker service create --name httpd --replicas 2 --update-delay 10s --publish published=8081,target=80 httpd Preview

Networking in Windows Server

  • Default driver is NAT (equivalent to bridge)
  • Transperent driver is equivalent to host driver

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Social Media Icons Powered by Acurax Web Design Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube