Я просматриваю учебники по Docker и немного растерялся, почему контейнеры могут иметь IP-адреса, отличные от узлов, содержащих их в рое.Моя путаница основана на приведенной ниже диаграмме, начиная с этой страницы в руководстве.
Большие зеленые прямоугольники - это узлыв рое;у каждого из них есть собственный IP и балансировщик нагрузки, и они внешне прослушивают порт 8080. Я считаю, что желтые прямоугольники - это контейнеры / задачи в службе my-web
.Они прослушивают порт 80, и я полагаю, что служба настроена на внешнее сопоставление порта 80 от каждого контейнера с портом 8080.
Это я понимаю более или менее, но не понимаю, почему контейнер / задачабудет иметь / нужен другой IP-адрес от узла, на котором он работает.Кто-нибудь может объяснить это?
Если бы мне пришлось угадывать, это было бы потому, что каждый контейнер в основном является виртуальной машиной, и виртуальные машины нуждаются в своих собственных IP-адресах, и никакие две виртуальные машины не могут иметь одинаковый IP-адрес, поэтому контейнер не может иметьтот же IP, что и у узла.Но я не уверен, что это объяснение верно.