Я пытался выставить порт nginx, чтобы иметь возможность доступа к странице с внешним IP-адресом.

Я попытался выставить порт 80 с:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Но ничего не изменилось

tcp6       0      0 :::80                   :::*                    LISTEN      7008/docker-proxy

Документация Laradock не ясно об этой проблеме.

Также я обнаружил, что вы можете выставить порт с помощью команды

docker run --expose=80 nginx

Но он всегда говорит, что не может найти изображение и начинает его строить.

1 ответ1

0

Вы используете проект, который использует довольно сложную настройку докера. Docker compose используется для запуска целой группы контейнеров, если вы посмотрите на файл compose для проекта.

Сам Docker поддерживает несколько различных сетевых режимов, и вы можете проверить документацию Docker, чтобы узнать об этом. Особенно статья о сетевых контейнерах в докере может быть довольно проницательной, поскольку в ней объясняется поведение сети по умолчанию.

Взгляните на конфигурацию nginx для этого проекта и проверьте запись nginx и файл env для проекта. Вы обнаружите, что файл compose уже содержит раздел портов, который, в соответствии с документацией по конфигурации compose, публикует порт для вашей локальной сети и использует мостовую сеть.

Вам нужно либо изменить конфигурацию сети докера, чтобы она соответствовала вашим потребностям, либо изменить конфигурацию вашего хоста, чтобы обеспечить фактическую маршрутизацию (например, 1 может иметь значение), или, возможно, проще, запустить обратный прокси-сервер для вашего приложения докера ... вы может сделать это с помощью контейнера Docker.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .