26. Mapeamento da porta do Docker

Por padrão, o contêiner pode acessar ativamente a conexão com a rede externa, mas a rede externa não pode acessar o contêiner.

Acesso ao contêiner para implementação externa

Para todas as conexões do contêiner à rede externa, o endereço de origem será conectado ao endereço IP do sistema local. Isso é feito usando iptableso endereço de origem da operação de camuflagem para alcançar.

Verifique as regras de NAT do host.

$ sudo iptables -t nat -nL
...
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  172.17.0.0/16       !172.17.0.0/16
...

Onde o endereço de origem de todas as regras no 172.17.0.0/16segmento de rede, o outro segmento é um tráfego de endereço de destino (rede externa) enviado mascarado como uma placa de sistema dinâmica. A vantagem do MASQUERADE e do SNAT tradicional é que ele pode obter dinamicamente o endereço da placa de rede.

Implementação de contêiner de acesso externo

Os contêineres permitem acesso externo, você pode docker runpassar o tempo -pou -Pparâmetro para habilitar.

Independentemente do tipo de forma, é na verdade no local iptableadicionar as regras correspondentes da tabela nat.

Use -Pquando:

$ iptables -t nat -nL
...
Chain DOCKER (2 references)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:49153 to:172.17.0.2:80

Use -p 80:80quando:

$ iptables -t nat -nL
Chain DOCKER (2 references)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:172.17.0.2:80

Nota:

  • A regra aqui mapeia 0.0.0.0, o que significa que o host aceitará o tráfego de todas as interfaces. Os usuários podem -p IP:host_port:container_portou -p IP::portespecificar o IP permitido, a interface no host de acesso ao contêiner, de modo a introduzir regras mais rígidas.
  • Se você deseja vincular-se permanentemente a um endereço IP fixo, pode usar o arquivo de configuração do Docker /etc/default/dockerpara especificar a DOCKER_OPTS="--ip=IP_ADDRESS"reinicialização após o serviço Docker entrar em vigor.

Acho que você gosta

Origin blog.csdn.net/shujuelin/article/details/108375317
Recomendado
Clasificación