
You set up Pterodactyl Wings on your VPS. You create a server in the panel. You hit "Start" and the console shows:
Error response from daemon: Pool overlaps with other one on this address space
The container refuses to start. Nothing works. Restarting Wings, restarting Docker, rebooting the VPS. The error comes back every time.
This error means Docker is trying to create an internal bridge network using an IP range that already exists somewhere in your server's routing table.
Why This Happens
Docker creates virtual networks for container isolation. Each network gets a subnet, like 172.17.0.0/16 or 172.18.0.0/16. Docker picks these automatically from a pool of private IP ranges.
The conflict happens when something else on your server already uses those ranges. Common causes:
- VPN software (WireGuard, OpenVPN) that creates tunnel interfaces on 172.x.x.x ranges
- Other Docker installations or Docker Compose projects with manually defined networks
- Nginx Proxy Manager running in its own Docker network
- Internal VPS networking where the hosting provider uses 172.x ranges for their virtual network fabric
Step 1: Find the Conflicting Network
List all existing Docker networks:
docker network ls
Inspect each one to see their subnets:
docker network inspect bridge
docker network inspect $(docker network ls -q) | grep -A 5 "Subnet"
Then check your system's routing table:
ip route show
And list all network interfaces:
ip addr show
Look for any 172.17.x.x, 172.18.x.x, or 172.19.x.x ranges. Compare what Docker wants to create versus what already exists.
Step 2: Remove Stale Docker Networks
If old Docker networks from previous containers or projects are lingering:
docker network prune
This removes all networks not attached to a running container. Then try starting your Pterodactyl server again.
Step 3: Change Docker's Default Address Pool
If the conflict comes from VPN software or VPS internal networking (things you cannot remove), tell Docker to use a different IP range entirely.
Edit or create /etc/docker/daemon.json:
sudo nano /etc/docker/daemon.json
Add this:
{
"default-address-pools": [
{
"base": "10.10.0.0/16",
"size": 24
}
]
}
This tells Docker to create bridge networks from the 10.10.x.x range instead of the default 172.x.x.x range. The 10.x.x.x space is far less likely to conflict with VPN tunnels or VPS provider networking.
Restart Docker:
sudo systemctl restart docker
Then restart Wings:
sudo systemctl restart wings
Step 4: Fix the Nginx Port Conflict (Bonus)
If you run Nginx Proxy Manager alongside Pterodactyl Wings, you will hit a second issue: both try to bind to port 443.
Wings daemon uses port 443 for secure websocket communication between the panel and the node. Nginx Proxy Manager also wants port 443 for HTTPS.
The fix is to change the Wings daemon port. Edit the Wings configuration file:
sudo nano /etc/pterodactyl/config.yml
Find the api section and change the port:
api:
host: 0.0.0.0
port: 8443
ssl:
enabled: true
cert: /etc/letsencrypt/live/yourdomain/fullchain.pem
key: /etc/letsencrypt/live/yourdomain/privkey.pem
Change port from 443 to 8443. Then update your Pterodactyl panel:
- Go to Admin > Nodes > Your Node
- Change the Daemon Port from 443 to 8443
- Save
Restart Wings:
sudo systemctl restart wings
Now Nginx handles port 443 for web traffic and Wings listens on 8443 for panel communication.
Quick Diagnostic Checklist
| Check | Command | What to Look For |
|---|---|---|
| Docker networks | docker network ls | Duplicate or stale networks |
| Network subnets | docker network inspect bridge | Overlapping 172.x.x.x ranges |
| System routes | ip route show | 172.x.x.x routes from VPN or VPS |
| Docker config | cat /etc/docker/daemon.json | Missing or incorrect address pools |
| Wings port | cat /etc/pterodactyl/config.yml | Port 443 conflict with Nginx |
On Space-Node, all Docker networking and Wings configuration is handled for you. No conflicts, no manual subnet management. Get started here.
