Default Bridge Network
By default, Docker creates a bridge network. Containers on the same bridge can communicate via IP address but not by name.
# List networks
docker network ls
# Inspect default bridge
docker network inspect bridgeUser-Defined Bridge Networks
User-defined bridges provide DNS resolution between containers:
# Create network
docker network create myapp-net
# Run containers on the network
docker run -d --name db --network myapp-net mariadb:11
docker run -d --name web --network myapp-net -p 80:80 mywebapp
# web can reach db by name: mysql -h db -u rootHost Networking
# Container shares host network stack (no port mapping needed)
docker run -d --network host nginx
# Nginx is directly on port 80 of the hostNone Network
# Completely isolated — no network access
docker run -d --network none myappNetwork Aliases
docker run -d --network myapp-net --network-alias database mariadb:11
# Other containers can reach it as "database"Cross-Network Communication
# Connect container to additional network
docker network connect frontend-net mycontainer
# A container can be on multiple networks simultaneouslyPort Publishing
# Map host port to container port
docker run -p 8080:80 nginx # Host 8080 → Container 80
docker run -p 127.0.0.1:8080:80 nginx # Only localhost