Да, вы можете сделать сопоставление портов. При запуске Docker-контейнера у вас не будет публично открытых или открытых внутренних портов, если вы не попросите Docker сделать это.
Например:
если вы хотите открыть порт внутри (внутри самой сети Docker, вам нужно добавить EXPOSE
в файл Docker)
если вы хотите опубликовать порт публично, к которому можно получить доступ либо через localhost, либо через публичный ip, вы можете использовать опцию -p
вместе с передачей портов, поэтому в вашем случае это будет выглядеть так:
docker run -p 9001:9001 imagename
Приведенная выше команда сообщит Docker, что вы хотели бы выполнить сопоставление портов от 9001 (используя localhost или любой другой интерфейс) до 9001 (внутри контейнера, и вы можете изменить порты в соответствии с вашими фактическими настройками).
Если вы хотите открыть его только для localhost, вы можете изменить команду на что-то вроде этого:
docker run -p 127.0.0.1:9001:9001 imagename
Для получения дополнительной информации проверьте следующие документы
Согласно обновленному вопросу, другой и самый безопасный способ сделать это - реализовать API внутри portiacrawl
, который можно вызывать через HTTP для выполнения необходимых задач вместо использования docker exec