Networking
Docker provides networks so containers can talk to each other and to the host. By default you get a bridge network; you can create user-defined networks for better isolation and built-in DNS.
Default Networks
Section titled “Default Networks”When you install Docker, three networks exist:
| Network | Driver | Behavior |
|---|---|---|
| bridge | bridge | Default for docker run. Containers get a private IP; port publishing (-p) maps host ports to container ports. |
| host | host | Container shares the host network stack. No isolation; no -p needed. |
| none | null | No networking. Container has no external access. |
# Use default bridge (implicit)docker run -d nginx:alpine
# Use host network (Linux: container sees host's ports directly)docker run -d --network host nginx:alpine
# Isolate: no networkdocker run -d --network none alpine:3.19 sleep 999User-Defined Networks
Section titled “User-Defined Networks”Create a network and attach containers. Containers on the same user-defined network can reach each other by container name (or service name in Compose) thanks to built-in DNS.
# Create a networkdocker network create mynet
# Run containers on itdocker run -d --name web --network mynet nginx:alpinedocker run -d --name api --network mynet myapp:1.0
# API can resolve "web" and connect to itIn Compose, all services in the same project are typically on one default network and resolve each other by service name.
Linking Containers (Legacy)
Section titled “Linking Containers (Legacy)”The legacy --link option is deprecated. Prefer user-defined networks and DNS by name.
Inspecting Networks
Section titled “Inspecting Networks”docker network lsdocker network inspect mynetdocker network rm mynetdocker network prune # Remove unused networksKey Takeaways
Section titled “Key Takeaways”- bridge — Default; use -p to publish ports. host — Share host network. none — No network.
- User-defined networks give container-to-container DNS by name; create with docker network create or via Compose.
- Prefer user-defined networks over —link for multi-container communication.