Skip to main content

Networking


Network Bridges

A network bridge in Docker is a virtual network that allows containers to communicate with each other while isolating them from the host network and other networks.

By default, if no network is specified when a container is created, it will connect to the default docker network bridge, often called docker0

3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

Unless otherwise specified, all containers will be connected to this network bridge, allowing for communication between containers over the local bridge network.

View all docker networks on a host:
docker network ls

Creating a Network Bridge

By default, Docker will create the docker0 network bridge. But, what if I want to create additional Docker networks?

In this scenario, we can use the docker network create function.

docker network create --driver bridge --subnet 182.18.0.0/16 networkname

Port Publishing & Mapping

Each docker container is assigned its own internal IP on the bridge network. The container can then publish a port which it's service/process can be accessed on. In this example, lets say I have a webapp running in a docker container on port 5000 on the internal IP 172.168.1.110. I want this web app to be accessible via port 80 on the host;

Map a container port to host port

Map port 80 on the host, to 5000 on the container.

docker run -p80:5000 containername