What is Docker Networking?
The System that allows Docker containers to communicate with each other inside the Docker host and outside of a non-Docker network. Have to access the container through the Host request, then we can get a response. When Docker creates the containers, each container runs in its own isolated environment. Those containers have a unique IP address, a gateway, DNS services and a networking interface. Create a connection between the container and the host for communication using Veth(Virtual Ethernet).
Type of Docker Networking
If we installed Docker provide the bridge network called “dockerO”. Any container connected to this bridge. Bridge’s network uses an IP address range like [172.17.0.0/16].
Advantage - The host can communicate with the container through the bridge network. If all the containers are in the same network, they can easily communicate with each other.
Disadvantage – Suppose we have a different product container. They don’t communicate with each other. So you have to create a separate bridge for those. It is called Network Creation. The products are stored to respective containers. Then they can communicate. It's called Isolated.
1. Default Bridge Network
It has a default network called “Default Bridge Network”. When you install the Docker Engine, it automatically creates the default network. It works as a Wi-Fi router, allowing multiple devices to connect, each with a unique IP address. Using the bridge, you can directly connect to the container, then connect with the host. Then we access the container through the bridge. The container connects to the bridge with a unique IP address.
2. Host
When we are using the host network type, The Containers are created within the host’s Network namespace, allowing you to access them directly. In the host network, there are no bridge network restrictions. But there is a limitation. Multiple containers do not use the same port on the host. If any container uses a specific port, another container cannot use the same. This is called a port conflict.
3. None
The container has no network access. It cannot communicate with any container. So it is only used for testing without any network or connection application.
Docker Network Command
Network
Allow us to create, manage, and configure the Docker Network - sudo docker network.
Create
Used to create our own network and deploy our containers to the network - sudo docker network create –driver<driver-name> <bridge-name>.
Connect
You can connect a running Docker container to an existing network - sudo docker network connect <network-name> <container-name or id>.
Inspect
Find out the details of the network - sudo docker network inspect <network-name>.
List(ls)
Using the list command - sudo docker network ls.
Disconnect
Remove the container from the network - sudo docker network disconnect<network-name><container-name>.
Rm
Remove a Docker Network and need to make sure that no container is referencing the network - sudo docker network rm<network-name>.
Prune
Remove all the unused Docker Networks - sudo docker network prune.
Conclusion
It can enable communication between inside Docker containers and outside of Docker Containers. It provides various types of networks that we can use for our needs. The types are designed for specific use cases like Isolation, Performance, or Testing. Features are like IP assignment, Flexible configuration, container-to-container communication, Networking makes it easy to build and manage modern applications. Docker Compose is a Docker tools it simplify networking by automatically creating and managing for multi-container applications.


