~/tools/docker-compose/list-ports

Docker Compose

Docker Compose Port Lister

Собрать список всех проброшенных портов из compose-файла.

Как это работает

Файл docker-compose.yml с десятком сервисов, и у каждого свой проброс портов, а нужно быстро понять, какие порты вообще заняты на хосте, чтобы не словить конфликт при запуске еще одного проекта рядом? Docker compose port lister online собирает все объявленные порты из файла в единый читаемый список.

Инструмент проходит по каждому сервису из секции services и для каждого объявленного порта в секции ports выводит строку вида имя сервиса и сам проброс портов, в том виде, в котором он записан в исходном файле, будь то простая пара портов через двоеточие или более сложная запись с указанием протокола.

Полезно применять перед запуском нескольких проектов одновременно на одной машине, при быстрой документации архитектуры проекта для новых членов команды, или просто чтобы вспомнить, на каком порту висит нужный сервис, если их много и держать в голове неудобно.

Частые вопросы

Показывает ли инструмент занятые порты хостовой машины реальные, не из compose файла?

Нет, это чисто текстовый анализ содержимого файла docker-compose.yml, реальное состояние занятости портов на вашей машине стоит проверять отдельно, например командой вроде lsof или netstat.

Что если у сервиса порты объявлены через переменную окружения, а не число напрямую?

Инструмент выводит запись ровно в том виде, как она записана в файле, если там используется подстановка переменной окружения, в списке результата будет видна именно эта подстановка, а не подставленное реальное значение.

Учитываются ли expose и ports как одно и то же?

Инструмент ориентирован именно на секцию ports, которая пробрасывает порт наружу на хост, expose используется для другой цели, доступности порта только внутри внутренней docker сети, и в этот список сейчас не попадает.

Можно ли использовать список для быстрой проверки конфликтов между несколькими compose файлами?

Да, удобный способ, прогнать через инструмент оба файла по отдельности и визуально сравнить получившиеся списки портов на предмет совпадений.