Ошибка «порт уже занят» при работе с контейнерами в Docker может возникать, если пытаться сопоставить порт на хост-машине, который уже используется другим процессом. 2
Чтобы определить конфликтующий процесс, можно использовать команду на хост-машине: sudo lsof -i :<host_port>
. 2
Ещё несколько рекомендаций, которые могут помочь решить проблему:
- Остановить любой контейнер в используемом порту. 1 Для этого нужно выполнить команду
docker destroy <идентификатор контейнера> или <имя контейнера>
. 1 - Создать пользовательскую сеть Docker. 2 К ней можно присоединить контейнеры, чтобы они взаимодействовали друг с другом внутри сети без открытия портов на хост-машине. 2
- Использовать переменные окружения. 2 Если запускается несколько экземпляров одного и того же контейнера, можно динамически назначать номера портов с помощью переменных окружения. 2