Два контейнера не могут одновременно занять один и тот же порт хоста. Порт — это уникальный идентификатор на уровне операционной системы, и если один контейнер уже пробросил (привязал) порт хоста, другой контейнер не сможет использовать этот же порт.
Могут ли два контейнера занять один порт хоста?
Два контейнера не могут одновременно занять один и тот же порт хоста.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Два контейнера не могут одновременно занять один и тот же порт хоста. Порт — это уникальный идентификатор на уровне операционной системы, и если один контейнер уже пробросил (привязал) порт хоста, другой контейнер не сможет использовать этот же порт.
Однако внутри сети Docker контейнеры могут слушать одинаковые порты, так как у каждого контейнера своя сетевая изоляция. Проблема возникает только при пробросе портов на хост-машину.
Пример: если контейнер A пробрасывает порт 8080 хоста, контейнер B не сможет пробросить порт 8080 хоста, но оба могут слушать порт 8080 внутри своих контейнеров.