How many networking types you can use when working with Docker ? Bridge network, Host network, overlay network, … and When you should use default networking and when to use user defined networking ?
Understanding docker networking will help you choose the right networking driver using for each container in your solution.
First , Let’s find out how many kind of networking driver in docker.
bridge: The default network driver. If you don’t specify a driver, this is the type of network you are creating. Bridge networks are usually used when your applications run in standalone containers that need to communicate.host: For standalone containers, remove network isolation between the container and the Docker host, and use the host’s networking directly.hostis only available for swarm services on Docker 17.06 and higher.overlay: Overlay networks connect multiple Docker daemons together and enable swarm services to communicate with each other. You can also use overlay networks to facilitate communication between a swarm service and a standalone container, or between two standalone containers on different Docker daemons. This strategy removes the need to do OS-level routing between these containers.macvlan: Macvlan networks allow you to assign a MAC address to a container, making it appear as a physical device on your network. The Docker daemon routes traffic to containers by their MAC addresses. Using themacvlandriver is sometimes the best choice when dealing with legacy applications that expect to be directly connected to the physical network, rather than routed through the Docker host’s network stack.none: For this container, disable all networking. Usually used in conjunction with a custom network driver.noneis not available for swarm services.- Network plugins: You can install and use third-party network plugins with Docker. These plugins are available from Docker Hub or from third-party vendors. See the vendor’s documentation for installing and using a given network plugin.
When should use select a networking driver:
- User-defined bridge networks are best when you need multiple containers to communicate on the same Docker host.
- Host networks are best when the network stack should not be isolated from the Docker host, but you want other aspects of the container to be isolated.
- Overlay networks are best when you need containers running on different Docker hosts to communicate, or when multiple applications work together using swarm services.
- Macvlan networks are best when you are migrating from a VM setup or need your containers to look like physical hosts on your network, each with a unique MAC address.
- Third-party network plugins allow you to integrate Docker with specialized network stacks.
for more details how to select a network driver for Standalone Containers, please refer this post : https://stepupautomation.wordpress.com/2018/12/29/docker-networking-with-standalone-containers/
For networking in a swarm cluster, please read: https://stepupautomation.wordpress.com/2018/12/29/docker-networking-for-swarm-services/
Source link: https://docs.docker.com/network/