Понимание того, почему порты должны быть открыты для связи между контейнерами на Docker0 - PullRequest
0 голосов
/ 08 июня 2019

Я просматривал официальные документы докера, чтобы понять разницу между пользовательским мостом и мостом по умолчанию. Ссылка на конкретную страницу - https://docs.docker.com/network/bridge/

В первом пункте раздела " Различия между определяемыми пользователем мостами и мостом по умолчанию " указано, что

Если вы запускаете тот же стек приложений в мостовой сети по умолчанию, вам нужно открыть как веб-порт, так и порт базы данных, используя -p или --publish флаг для каждого.

Я не понимаю этот конкретный текст о том, почему необходимо явно публиковать (-p) требуемый порт контейнера базы данных, когда он будет использоваться только другим контейнером, подключенным к тому же мосту. Насколько я понимаю, если контейнеры, подключенные к докеру 0, явно не заблокированы, они могут свободно взаимодействовать друг с другом.

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

1 Ответ

1 голос
/ 08 июня 2019

Если вы удалите одну вещь с этой страницы, это то, что вы должны всегда docker create network, а затем docker run --net контейнеры в этой сети, если вы используете простые команды Docker. (Docker Compose делает это автоматически для вас; сетевая модель Kubernetes принципиально отличается.)

Если вы docker run контейнер без опции --net, то вы используете режим обратной совместимости. В этом режиме («мостовая сеть по умолчанию») со страницы, на которую вы ссылаетесь, контейнеры не могут связываться друг с другом по умолчанию. Вы можете выбрать один из двух вариантов: сервер должен опубликовать порт (docker run -p), а клиент - подключиться к опубликованному порту на хосте, или сервер - открыть порт (почти всегда это делается с помощью директивы EXPOSE в Dockerfile). ) и клиент к --link ему.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...