Não é possível obter o IP estático externo no GCE para se conectar ao contêiner do Docker na instância

1

Eu configurei uma instância do Google Compute Engine (GCE) com um endereço IP estático atribuído. Meu objetivo é executar um contêiner do Docker para osticket nessa instância.

Eu iniciei o contêiner do Docker normalmente. Eu posso conectar usando o Lynx de um shell bash rodando dentro do container (lynx link ).

Por favor, entenda que não sou profissional de rede. Depois de ler em rede Docker eu usei este comando iptables sugerido na instância (iptables -t nat -L -n) e descobri um endereço IP (172.17.0.7) cujo objetivo é um mistério para mim:

Chain DOCKER (2 references) 
target  prot opt source        destination
DNAT    tcp  --  0.0.0.0/0     0.0.0.0/0      tcp dpt:8080 to:172.17.0.7:80

No entanto, cobro o forward e dentro do shell da instância (fora do contêiner), executei o Lynx conectando-se a esse endereço IP (172.17.0.7:80) e conectei ao site do osticket! Estou assumindo que ele está conectado ao contêiner.

A saída completa do iptables foi:

Chain PREROUTING (policy ACCEPT) 
target     prot opt source      destination
DOCKER     all  --  0.0.0.0/0   0.0.0.0/0        ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT) 
target     prot opt source      destination         

Chain OUTPUT (policy ACCEPT) 
target     prot opt source       destination
DOCKER     all  --  0.0.0.0/0    !127.0.0.0/8   ADDRTYPE match dst-type LOCAL 

Chain POSTROUTING (policy ACCEPT) 
target     prot opt source           destination  
MASQUERADE all  --  172.17.0.0/16    0.0.0.0/0           
MASQUERADE tcp  --  172.17.0.7       172.17.0.7     tcp dpt:80

Chain DOCKER (2 references) 
target     prot opt source           destination          
DNAT       tcp  --  0.0.0.0/0        0.0.0.0/0      tcp dpt:8080 to:172.17.0.7:80

Então, minha pergunta:

Agora que sei que o contêiner docker está funcionando e posso acessá-lo (pelo menos de dentro da instância e através desse misterioso addr), como o endereço IP externo do GCE deve se conectar através da instância e para esse contêiner?

Ainda não está funcionando. Tentando se conectar do meu navegador laptop para esse IP externo, conectando-se à porta 80 eu recebo: "Este site não pode ser alcançado. XXX.XXX.XXX.XXX se recusou a conectar." Conectando à porta 8080, recebo "Este site não pode ser acessado. XXX.XXX.XXX.XXX demorou muito para responder".

Não consigo encontrar uma correção de configuração que faça a conexão. Eu posso pingar com sucesso esse endereço externo para que eu saiba que ele está se conectando a algo. Estou certo de que o IP estático está atribuído à instância do GCE do osticket.

Um pouco de bg extra: anteriormente, instalei outro GCE com um contêiner Docker (Mattermost) com um IP estático externo semelhante. O IP externo funcionou! Conectou-se através do contêiner sem problemas. Eu estava esperando que o mesmo fosse verdade novamente. Sem sorte.

[Editar: corrigido um erro de digitação.]

    
por ustamills 25.08.2016 / 23:35

1 resposta

2

Você precisa criar uma regra de firewall no link para abrir a porta 80 para tráfego externo de entrada.

    
por 26.08.2016 / 14:13