Scope of This Topic: Estimated Reading Time: 3 Minutes
Scope of This Topic: Estimated Reading Time: 3 Minutes
One of the reasons Docker containers and services are so powerful is that you can connect them
together, or connect them to non-Docker workloads. Docker containers and services do not even
need to be aware that they are deployed on Docker, or whether their peers are also Docker
workloads or not. Whether your Docker hosts run Linux, Windows, or a mix of the two, you can use
Docker to manage them in a platform-agnostic way.
This topic defines some basic Docker networking concepts and prepares you to design and deploy
your applications to take full advantage of these capabilities.
Most of this content applies to all Docker installations. However, a few advanced features are only
available to Docker EE customers.
In addition, this topic does not provide any tutorials for how to create, manage, and use Docker
networks. Each section includes links to relevant tutorials and command references.
Network drivers
Docker’s networking subsystem is pluggable, using drivers. Several drivers exist by default, and
provide core networking functionality:
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. See bridge networks.
host: For standalone containers, remove network isolation between the container and the
Docker host, and use the host’s networking directly. host is only available for swarm services
on Docker 17.06 and higher. See use the host network.
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. See overlay networks.
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 the macvlan driver 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. See Macvlan networks.
none: For this container, disable all networking. Usually used in conjunction with a custom
network driver. none is not available for swarm services. See disable container networking.
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.