Process port conflicts on container start in a user friendly way
Description
On add-on start, if a port is already occupied, Docker raises a common error, but uses a rather specific text. The text however is somewhat long and annoying to parse.
Ideally we parse such common errors properly and turn it into a custom named exception with the parsed information as property (like port).
There are quite some add-ons which have multiple copies of the same add-on with different quality (e.g. stable/beta/dev). Such add-ons seem to appear often in our Sentry logs (e.g. ESPHome/Zigbee2MQTT).
Additional context
No response
On Sentry, the issues mainly appear around Supervisor releases (since a restart of Supervisor causes an add-on start attempt):
https://home-assistant-io.sentry.io/issues/4606322517/events/9bc4628e3a4c43298bf3294531e7cf3f/?end=2025-11-04T13%3A33%3A00&start=2025-11-03T18%3A36%3A00