開発者ドキュメント

ЭкосистемаDocker:сетевоевзаимодействие

Сериятуториалов

Этоттуториалявляется4-ойчастьюиз5-тивсериистатейЭкосистемаDocker

Введение

ПрипроектированиираспределённыхсистемработающихсDocker-контейнерами、сетевоевзаимодействие Сервис-ориентированнаяархитектура、бесспорно、опираетсянавзаимодействиемеждукомпонентамид

Вданномруководствемырассмотримразличныестратегиисетевоговзаимодействияиинструменты、используемыедляформированияжелаемойконфигурациисетей、используемыхконтейнерами。 ВнекоторыхситуацияххорошоподходятвстроенныерешенияотDocker、втовремякаквдругихлучшеисп

Docker

Dockerпредоставляетмногобазовогофункционаласетевоговзаимодействия、необходимогодлясвязей

Docker-процесса、онсоздаетновыйвиртуальногоинтерфейстипа“мост”сназваниемdocker0 ЭтотинтерфейспозволяетDockerсоздатьвиртуальнуюподсетьдляиспользованияконтейнерами、которы Мостбудетслужитьосновнойточкойвзаимодействиямеждусетьювнутриконтейнераисетьюхоста。

Dockerзапускаетконтейнер、создаетсяновыйвиртуальныйинтерфейсиемуназначаетсяадресвди IP-адрессвязансвнутреннейсетьюконтейнера、предоставляяпутьдлясетиконтейнеракмосту[X93] ドッカーавтоматическиконфигурируетправилавiptablesдляобеспеченияпереадресациииконфигурирует NAT длятрафикаизdocker0вовнешнююсеть。

Какконтейнерыделаютсвоисервисыдоступнымидляпотребителей?

Другиеконтейнерынатомжехостеспособныосуществлятьдоступксервисам、предоставляемымсос Хост-системапростобудетнаправлятьзапросыкинтерфейсуdocker0всоответствующееместо。

Контейнерымогутоткрыватьсвоипортыдляхоста、накоторыеонимогутприниматьтрафик、приход Открытыепортымогутбытьотображены(マッピングされる)нахост-системулибопутемвыбораконкретногопорта、либоразрешениемドッカーвыбратьслучайныйнеиспользуемыйпортсбольшимадресом。 ВэтихслучаяхDockerпозаботитсяовсехправилахпереадресациииконфигурацииiptablesдлякоррект

Вчемразницамеждуоткрытием(公開)ипубликацией(公開)порта?

ПрисозданииобразаконтейнераилиегозапускеуВасестьвыбормеждуоткрытиемипубликациейп Разницамеждуэтивариантамизначительная、номожетбытьзаметнанесразу。

Открытие(公開)портапростоозначает、чтоDockerбудетиметьввиду、чтоданныйпортиспользуетсяконте Этоиспользуетсявцеляхобнаруженияисвязи。 Например、проверка(検査)контейнерадастВаминформациюоботкрытыхпортах。 Когдаконтейнерысвязаны、переменныеокружениявновомконтейнеребудутустановленынеобходимымобразом、всоответствиесоткрытымипортамиисходногоконтейнера。

Поумолчанию、контейнерыбудутдоступныдляхост-системыилюбыхдругихконтейнеров、расположенныхнатомжехосте、независимооттого、открытылипорты。 情報は、情報を提供します。情報は、情報を提供します。

Вотличиеотэтого、публикация(出版)портамаппируетегонаинтерфейсхоста、делаяегодоступны Портыконтейнерамогутбытьпривязаныкконкретномупортухоста、илиDockerможетавтоматическивыбр

DockerпредоставляетмеханизмподназваниемDocker-связидляконфигурациивзаимодействиямеждуконтейнерами Еслиновыйконтейнерсвязанссуществующимпосредствомドッカー-связи、новыйконтейнерполучитинформациюоподключенииксуществующемучерезпеременныеокружения。

Этопозволяетлегкоустанавливатьсвязимеждудвумяконтейнерамипутемпередачиновомуконтейнеруявнойинформацииотом、какосуществлятьдоступкего「партнеру」。 Переменныеокруженияустанавливаютсявсоответствииспортами、открытымидругимконтейнером。 IP-Docker。

Проекты、расширяющиесетевоевзаимодействиеDocker

Описаннаявышемодельсетевоговзаимодействияявляетсяхорошейбазовоймодельюдляорганизаци Взаимодействиемеждуконтейнераминаодномитомжехостедостаточнопростореализуется、взаимодействиемеждухостамиможетпроисходитьпосредствомиспользованияпубличныхсетейприусловииправильнойнастройкипортовипередачиинформации、необходимойдлянастройкиэтоговзаимодействия、непосредственнохостам、участвующемвэтомвзаимодействии。

Темнеменее、многиеприложениятребуютособыхусловийсетевоговзаимодействияизсоображенийбезопасностиилидляихправильногофункционированиявцелом。 ДляэтихслучаевнативныхрешенийDockerоказываетсянедостаточно。 Поэтойпричине、существуетмножествопроектов、расширяющихфункциональностьэкосистемыDocker。

Созданиеоверлейныхсетейдляабстрагированияоттопологиисети

Сразунесколькопроектовсфокусировалисвоиусилиянасозданииоверлейныхсетей。 Оверлейнаясеть-этовиртуальнаясеть、построеннаяповерхсуществующейсети。

СозданиеоверлейнойсетипозволяетВамсоздатьболеепредсказуемуюиединообразнуюсетевую Этоупрощаетсетевоевзаимодействиемеждуконтейнерамивнезависимостиоттого、гдеонифизи Однавиртуальнаясетьможетохватыватьмножествохостовилиотдельныхфизическихподсетей。

Ещёоднимпримеромиспользованияоверлейныхсетейявляетсясозданиеполносвязнойвычислительн Вполносвязнойвычислительнойсредемножествохостовпредставляетсяввидеболееабстрактнойи Реализацияполносвязнойвычислительнойсредыпозволяетконечномупользователюуправлятькластером、какединымцелым、вместотого、чтобыработатьсотдельнымихостами。 Организациясетевоговзаимодействияиграетприэтомключевуюроль。

Организацияпродвинутогосетевоговзаимодействия

Существуютпроекты、расширяющиесетевыевозможностиDockerипредоставляющиебольшуюгибкость

Dockerсетевыенастройкифункциональны、ноограниченыпосвоимвозможностям。 Этиограниченияособеннозаметныприорганизациивзаимодействиямеждухостами、атакжепринеобходимостинастроитьболеенестандартноесетевоевзаимодействиенаодномхосте。

Дополнительнаяфункциональностьпредоставляетсяприпомощи“встраиваемых”возможностей。 Этипроектынепредоставляютконфигурацию「изкоробки」、ноприэтомпозволяютВамвручнуюнастроекто、чтовамнеобходимодляреализацииболеесложныхсценариевсетевоговзаимодействия。 Примерамитакого「нестандартного」сетевоговзаимодействиямогутбытьнастройкаприватнойсетимеждуопределённымихостами、настройкамостов(ブリッジ)、виртуальныхлокальныхсетей、подсетей、шлюзов(ゲートウェイ)。

Существуетрядинструментовипроектов、которыеизначальнобылиразработанынедляприменениясドッカー、но、темнеменее、частоиспользуютсявドッカーдляобеспечениянеобходимойфункциональности。 Вчастности、существующиерешениядляпостроенияприватныхсетейитехнологиитуннелированиячастоиспользуютсядляобеспечениябезопасноговзаимодействиямеждухостамииконтейнерами。

НаиболеепопулярныепроектыдляулучшениясетевыхвозможностейDocker

Существуетнесколькопроектов、фокусирующихсянапостроенииоверлейныхсетейдляDocker-хостов。 Наиболеераспространеннымиявляются:

Для“продвинутого”управлениясетьюиспользуютсяследующиепроекты:

モバイルバージョンを終了