🔱Compose Port Mapping Organizer

Paste port mappings to see host port clashes

Comparedportsexpose
Reachable from the hostOpens a host port, so outside clients can connectOpens nothing. Only containers on the same network connect
Host port clashUsing one host port twice fails at startupUses no host port, so it cannot clash
What you writehost:container formContainer port only

You Might Also Need

Find which services fight over a host port

Paste the port lists from your compose file and every host:container entry is expanded into one row, then services sharing a host port are named in pairs. Ranges are expanded port by port before comparing, and a mapping with no host port is assigned one at run time, so it is left out of the clash check. The same number on a different protocol is not a clash.

Bind addresses count too. With no address the port opens on all interfaces, which covers the same number written for a specific address, while two different specific addresses do not collide. The difference between ports and expose is in the table below. Notation follows the Compose file specification, as of October 2026.

The tool does not parse a whole compose file. Long-form port blocks, variable substitution, profiles and host network mode are out of scope, and a host range whose length differs from the container range is reported as an error. Confirm the ports actually bound after the stack starts.

Frequently Asked Questions

Does a mapping without a host port ever clash?

If you write only the container port, the host port is assigned from the free range at run time. Because the number is not fixed in advance, the tool leaves it out of the clash check and counts it separately.

What if one side sets a bind address and the other does not?

That counts as a clash. With no address the port opens on all interfaces, which overlaps the same number opened on a specific address. Two different specific addresses do not overlap.

How do ports and expose differ?

ports opens a host port so clients outside can connect, while expose uses no host port and only containers on the same network reach the service. That is why expose alone never causes a host port clash.