Existem 3 tipos de rede por defeito no Docker: Bridge, None e Host.
Bridge - docker run ubuntu
O Docker cria esta rede privada interna por defeito no anfitrião (host, máquina virtual ou computador físico onde está a correr o Docker) e todos os containers obtêm um IP interno normalmente na gama 172.17.x.x. Os containers ligam-se uns aos outros usando esta rede interna.
Para
as redes externas se ligarem a estes containers é preciso mapear portos
de rede entre si (anfitrião:80 <-->container:8080).
None - docker run ubuntu --network=none
Os containers estão desligados de qualquer rede estando completamente isolados.
Host - docker run ubuntu --network=host
Outra forma de redes externas obterem acesso aos containers é associar o container à rede do anfitrião quebrando-se desta forma o isolamento que existe entre o anfitrião e o container. Assim, qualquer aplicação a correr no container num porto qualquer fica imediatamente exposto ao exterior no mesmo porto.
Por defeito o Docker cria uma rede interna para os containers comunicarem entre si na gama 172.17.x.x. É possível criar outra rede interna, noutra gama, com o seguinte comando:
$ docker network create --driver bridge --subnet 10.10.0.0/16 custom-isolated-network
DNS
Os containers conseguem comunicar entre si usando o seu nome que por sua vez é um nome DNS no servidor de nomes embebido no Docker.
Quando queremos que uma aplicação num container, aceda a outra noutro container, no mesmo Docker Host, podemos usar o IP interno (por exemplo: 172.17.0.3 <--> 172.17.0.8). Mas a forma mais correta é usar o nome do container, uma vez que ao reiniciar o container, este pode não assumir o mesmo IP.
O servidor DNS embebido no Docker é executado com o IP 127.0.0.11.
0 comments:
Enviar um comentário