172.17.0.0/16
Private (RFC 1918) RFC 1918The 172.17.0.0/16 range is the default subnet Docker assigns to its built-in bridge network (docker0). Every container started without an explicit network gets an IP in this range. If this conflicts with your corporate or VPN network, Docker's bridge range can be reconfigured in /etc/docker/daemon.json.
Network address — the base address of the block (172.17.0.0). All devices in this subnet share this prefix. Cannot be assigned to a host.
Broadcast address — packets sent to 172.17.255.255 are delivered to every device in the subnet. Also reserved — not assignable.
Usable hosts — the 65,534 addresses between those two that you can assign to servers, VMs, or interfaces.
Subnet mask — 255.255.0.0 is the dotted-decimal equivalent of /16. Older tools and Cisco configs use this format instead of CIDR slash notation.
Full Details
| CIDR Notation | 172.17.0.0/16 |
| Network Address | 172.17.0.0 |
| Broadcast Address | 172.17.255.255 |
| Subnet Mask | 255.255.0.0 |
| Wildcard Mask | 0.0.255.255 |
| Prefix Length | /16 |
| IP Address Class | Class B |
| Total IP Addresses | 65,536 |
| Usable Host Addresses | 65,534 |
| First Usable IP | 172.17.0.1 |
| Last Usable IP | 172.17.255.254 |
| Network (Hex) | 0xAC110000 |
| Broadcast (Hex) | 0xAC11FFFF |
| Governing RFC | RFC 1918 |
| Address Type | Private (RFC 1918) |
Binary Representation
The first 16 bits (1s in the mask) identify the network. The remaining 16 bits identify hosts within the network.
Split into Equal Subnets
Split 172.17.0.0/16 into 2 equal /17 subnets (32,766 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 172.17.0.0/17 | 172.17.0.0 | 172.17.0.1 | 172.17.127.254 | 172.17.127.255 | 32,766 |
| 2 | 172.17.128.0/17 | 172.17.128.0 | 172.17.128.1 | 172.17.255.254 | 172.17.255.255 | 32,766 |
Split 172.17.0.0/16 into 4 equal /18 subnets (16,382 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 172.17.0.0/18 | 172.17.0.0 | 172.17.0.1 | 172.17.63.254 | 172.17.63.255 | 16,382 |
| 2 | 172.17.64.0/18 | 172.17.64.0 | 172.17.64.1 | 172.17.127.254 | 172.17.127.255 | 16,382 |
| 3 | 172.17.128.0/18 | 172.17.128.0 | 172.17.128.1 | 172.17.191.254 | 172.17.191.255 | 16,382 |
| 4 | 172.17.192.0/18 | 172.17.192.0 | 172.17.192.1 | 172.17.255.254 | 172.17.255.255 | 16,382 |
Split 172.17.0.0/16 into 8 equal /19 subnets (8,190 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 172.17.0.0/19 | 172.17.0.0 | 172.17.0.1 | 172.17.31.254 | 172.17.31.255 | 8,190 |
| 2 | 172.17.32.0/19 | 172.17.32.0 | 172.17.32.1 | 172.17.63.254 | 172.17.63.255 | 8,190 |
| 3 | 172.17.64.0/19 | 172.17.64.0 | 172.17.64.1 | 172.17.95.254 | 172.17.95.255 | 8,190 |
| 4 | 172.17.96.0/19 | 172.17.96.0 | 172.17.96.1 | 172.17.127.254 | 172.17.127.255 | 8,190 |
| 5 | 172.17.128.0/19 | 172.17.128.0 | 172.17.128.1 | 172.17.159.254 | 172.17.159.255 | 8,190 |
| 6 | 172.17.160.0/19 | 172.17.160.0 | 172.17.160.1 | 172.17.191.254 | 172.17.191.255 | 8,190 |
| 7 | 172.17.192.0/19 | 172.17.192.0 | 172.17.192.1 | 172.17.223.254 | 172.17.223.255 | 8,190 |
| 8 | 172.17.224.0/19 | 172.17.224.0 | 172.17.224.1 | 172.17.255.254 | 172.17.255.255 | 8,190 |
Split 172.17.0.0/16 into 16 equal /20 subnets (4,094 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 172.17.0.0/20 | 172.17.0.0 | 172.17.0.1 | 172.17.15.254 | 172.17.15.255 | 4,094 |
| 2 | 172.17.16.0/20 | 172.17.16.0 | 172.17.16.1 | 172.17.31.254 | 172.17.31.255 | 4,094 |
| 3 | 172.17.32.0/20 | 172.17.32.0 | 172.17.32.1 | 172.17.47.254 | 172.17.47.255 | 4,094 |
| 4 | 172.17.48.0/20 | 172.17.48.0 | 172.17.48.1 | 172.17.63.254 | 172.17.63.255 | 4,094 |
| 5 | 172.17.64.0/20 | 172.17.64.0 | 172.17.64.1 | 172.17.79.254 | 172.17.79.255 | 4,094 |
| 6 | 172.17.80.0/20 | 172.17.80.0 | 172.17.80.1 | 172.17.95.254 | 172.17.95.255 | 4,094 |
| 7 | 172.17.96.0/20 | 172.17.96.0 | 172.17.96.1 | 172.17.111.254 | 172.17.111.255 | 4,094 |
| 8 | 172.17.112.0/20 | 172.17.112.0 | 172.17.112.1 | 172.17.127.254 | 172.17.127.255 | 4,094 |
| 9 | 172.17.128.0/20 | 172.17.128.0 | 172.17.128.1 | 172.17.143.254 | 172.17.143.255 | 4,094 |
| 10 | 172.17.144.0/20 | 172.17.144.0 | 172.17.144.1 | 172.17.159.254 | 172.17.159.255 | 4,094 |
| 11 | 172.17.160.0/20 | 172.17.160.0 | 172.17.160.1 | 172.17.175.254 | 172.17.175.255 | 4,094 |
| 12 | 172.17.176.0/20 | 172.17.176.0 | 172.17.176.1 | 172.17.191.254 | 172.17.191.255 | 4,094 |
| 13 | 172.17.192.0/20 | 172.17.192.0 | 172.17.192.1 | 172.17.207.254 | 172.17.207.255 | 4,094 |
| 14 | 172.17.208.0/20 | 172.17.208.0 | 172.17.208.1 | 172.17.223.254 | 172.17.223.255 | 4,094 |
| 15 | 172.17.224.0/20 | 172.17.224.0 | 172.17.224.1 | 172.17.239.254 | 172.17.239.255 | 4,094 |
| 16 | 172.17.240.0/20 | 172.17.240.0 | 172.17.240.1 | 172.17.255.254 | 172.17.255.255 | 4,094 |
Common Use Cases
- → Docker default bridge network (docker0)
- → Containers running without an explicit --network flag
- → Local development with Docker Compose
- → Conflict diagnosis when Docker breaks VPN connectivity
Code Examples
# To change Docker's default bridge, edit /etc/docker/daemon.json:
# {
# "bip": "172.26.0.1/16"
# }
# Then restart Docker: sudo systemctl restart docker
# Docker Compose — use a custom bridge to avoid conflicts
networks:
app_net:
driver: bridge
ipam:
config:
- subnet: 172.26.0.0/16
# Inspect Docker bridge network
docker network inspect bridge \
--format '{{range .IPAM.Config}}{{.Subnet}}{{end}}'
# Run a container and check its IP
docker run --rm alpine ip addr show eth0