Преимущества использования виртуальных сетей Docker - PullRequest
0 голосов
/ 23 февраля 2019

Каковы плюсы в том, что контейнеры Docker работают и взаимодействуют друг с другом через виртуальную сеть Docker, вместо того, чтобы просто связывать их друг с другом через хост-машину?Скажем, у меня есть контейнер A, открытый через порт 8000 на хост-компьютере (-p 8000: 8000) и контейнер B, открытый через порт 9000 на хост-компьютере (-p 9000: 9000).Контейнер A может взаимодействовать с контейнером B через host.docker.internal:9000, но если бы они были развернуты в той же сети Docker, A мог бы связываться с B просто через <name of container B>:9000.Последний, очевидно, более аккуратный, на мой взгляд, но в чем его преимущества?

1 Ответ

0 голосов
/ 23 февраля 2019

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

-pub---> PROXY --priv---> MAIN SERVICE --priv--> DATABASE

Только публичный (хост) сетевой интерфейс должен быть открыт только для proxy .Все 3 службы могут быть частью частной сети, в которой происходит внутренний трафик.

Упрощение .Трафик в частной сети считается «доверенным», поэтому нет необходимости в SSL-сертификате (HTTPS), и каждый сервис должен выполнять проверку SSL / TLS.
Как правило, он (или должен быть) намного быстрее, чем общедоступные сети, что означаетнет необходимости в какой-либо оптимизации, используемой в Интернете (сжатие или другие схемы сжатия, кэширование).

Несколько виртуальных машин Когда службы охватывают несколько виртуальных машин, они, как правило, не привязаны к определенной виртуальной машине.Это позволяет даже переносить компоненты (контейнеры, задачи и т. Д.) На разные или новые виртуальные машины с помощью оркестраторов (Kubernetes, Mesos, ...).Связь между сервисами осуществляется через частную (оверлейную) сеть, охватывающую все виртуальные машины.Тогда вашему сервису нужно только ссылаться на другие сервисы по имени и позволить оркестратору правильно перенаправить его.

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