✦ For everyone, free.

Practical knowledge for real and everyday life

Home

User Defined Networks

User Defined Networks in Docker allow custom network configurations, enabling isolated, secure communication between containers without relying on default bridge networks

User-defined networks are Docker networks explicitly created by name, distinct from the automatically provided default bridge network, offering better isolation, automatic name-based DNS resolution, and generally more deliberate, controllable networking behavior for multi-container applications.

Creating a User-Defined Network

A new network is created explicitly, given a name that containers can later reference when they connect to it.

docker network create app-network

Attaching Containers to a User-Defined Network

Containers explicitly join a user-defined network at creation time, or can be connected to it afterward.

docker run -d --name api --network app-network myapi:1.0
docker network connect app-network another-container

Why User-Defined Networks Are Generally Preferred Over the Default Bridge

Beyond automatic DNS-based name resolution (which the default bridge lacks), user-defined networks provide better isolation between unrelated groups of containers, since containers not explicitly attached to a given user-defined network cannot communicate with containers that are.

docker network create frontend-net
docker network create backend-net

Separating distinct application tiers onto their own dedicated networks limits unintended cross-communication between unrelated parts of a larger system.

Customizing a User-Defined Network's Configuration

A user-defined network's address range, gateway, and other settings can be explicitly configured at creation time, rather than relying on Docker's automatic defaults.

docker network create --subnet=172.25.0.0/16 --gateway=172.25.0.1 custom-net

Listing and Inspecting Existing Networks

Currently defined networks, and which containers are attached to each, can be reviewed directly.

docker network ls
docker network inspect app-network

Why User-Defined Networks Matter

Adopting user-defined networks as the standard approach for multi-container applications provides meaningfully better name resolution, isolation, and configurability than relying on the default bridge network, making them the generally recommended choice for any application involving more than a single, standalone container.