Docker 101 : Networking - Bridge network, user-defined network, ... -
But if there is a need for a more "customized" network driver, there are third party options, like weave for example.
We can create a weave network named "weave_1" using the below command:
Then we could attach the "nginx_container" container to the "weave_1" network using the below command:
The network drivers that come with docker are as follows:
- Bridge: it is the default networking option for docker, it creates a virtual switch that connects the containers together.
- Host: the container uses the same network stack as the host it "lives" on, we don't need to expose the container's host to be accessible from outside.
- Overlay: it used to allow containers on different nodes to communicate. It uses the existing network structure and "overlays" another virtual network on top of that existing structure - vxlan for example -
- Macvlan: it allows us to give the container a MAC address, so that the containers could use the network without going through the docker networking infrastructure.
- None: using this network driver, the container has no network connection to the outside.
We could list the virtual bridges on a system using the below command:
Remark:
Containers names as opposed to containers IP addresses don't change if a container restarts for example, so applications could use names without worrying about the containers changing IP addresses.
To see the networks that exist on a docker host, we can use the following command:
If we decide to create a user-defined network, we could define different parameters for our network like the subnet of our network, its IP range, and its gateway.
Remark:
This network is internal to our host.
We could check if it was created as follows:
The gateway IP address is attached to the host interface.
To connect a container named "nginx_container" to the "network_1" network so it can communicate with the other containers that are on the same network, we use the following:
Then we disconnect from "network_1" network using the following:
Comments