We will not use virtual machines to perform the above tasks because there are already many open source and commercial tools such as VirtualBox and VMware, which can be used to set up network configuration on virtual machines. Let us now discuss tasks like: (i) the allocation of specific IP addresses to Docker containers, (ii) the creation of Docker containers in a specified IP address range, and (iii) establishing communication amongst containers that are running on different Docker hosts (multi-host Docker networking).įigure 1 depicts the topology of Docker networking. There are three types of Docker networks-default networks, user-defined networks and overlay networks. Let us look at the various ways of creating and using the Docker network.Īspects of the Docker network Figure 1: Block diagram of Docker networking Figure 2: To check if Docker is running So, Docker lets us design the network as per our requirements. Most times, it is required to create and deploy Docker networks as per our needs. When we create and run a container, Docker, by itself, assigns an IP address to it, by default. It has been just five years since Docker was launched, yet, communities have already shifted to it from VMs. It is written in Go and uses Linux kernel features like namespaces and cgroups. It was launched in 2013 by a company called dotCloud. Besides, containers take less time to create, delete, start or stop, when compared to Vms.ĭocker is an open source tool that helps in the management of containers. These are lightweight in terms of resources, compared to VMs. One of the popular technologies that addresses this requirement is containers.
![docker network overlay docker network overlay](https://docker-k8s-lab.readthedocs.io/en/latest/_images/ovs-gre-docker.png)
Docker network overlay software#
They enable us to run multiple operating systems simultaneously with the help of hardware virtualisation.Īlong with the IT industry’s shift towards microservices (the small independent services required to support complete software suites or systems), a need arose for machines that consume less computing resources in comparison to VMs. VMs are being used everywhere-from small organisations to cloud data centres. Virtual machines (VMs) are the basis of this process of virtualisation. This fascination was converted into reality when virtualisation came into existence.
![docker network overlay docker network overlay](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/_images/routing-mesh.png)
The idea of running machines on a machine is quite fascinating. Assigning specific IP addresses to containers rather than using the default IPs, creating user-defined networks, and communication between containers running on multiple hosts are some of the challenges we will address in this article. To play around with Docker networking and tune it as per our requirements, we need to first understand the fundamentals as well as its intricacies.
![docker network overlay docker network overlay](https://neuvector.com/wp-content/uploads/2017/01/swarm_network_view.png)
And with the introduction of Docker Swarm and overlay networks, it has become very easy to deploy and connect multiple services running on Docker containers – irrespective of whether they are running on a single or multiple hosts. Docker networking has evolved from just a few limited networks to customisable ones.
![docker network overlay docker network overlay](https://dz2cdn1.dzone.com/storage/temp/9818419-docker-aws-elb.png)
This article presents an overview of Docker networks and the associated networking concepts.Ĭustomisation and the manipulation of default settings is an important part of software engineering.