Estou usando o Docker para Mac. Estou executando um microsserviço baseado em nodejs em um contêiner Docker. Quero testar o microsserviço do nó por meio do navegador. Como obter o endereço IP do docker container em execução?
docker
containers
docker-for-mac
user3067875
fonte
fonte
Respostas:
Se você não quiser mapear as portas de seu host para o contêiner, poderá acessar diretamente o IP de intervalo do docker para o contêiner. Por padrão, esse intervalo só é acessado de seu host. Você pode verificar os dados de sua rede de contêiner fazendo:
Provavelmente é melhor filtrar:
Normalmente, o intervalo de ip do docker padrão é
172.17.0.0/16
. Seu host deve ser172.17.0.1
e seu primeiro contêiner deve ser,172.17.0.2
se tudo estiver normal e você não especificar nenhuma opção especial de rede.EDITAR Outra maneira mais elegante de usar os recursos do docker em vez de "truque de bash":
fonte
localhost
:)http://172.17.0.2:anyPort
partir do host. Obviamente, se você deseja acessá-lo usando localhost no host, deve mapear as portas. Vai ver o que o OP quer.docker run --name struts --rm -i tomcat
2. Obtenha o ip do contêiner (se você tiver apenas um):docker inspect struts | grep '"IPAddress"' | head -n 1
3. Abra-o no navegador do hosthttp://x.x.x.x:8080
. Você pode ver a página padrão do Apache Tomcat.Use a
--format
opção para obter apenas o endereço IP em vez de todas as informações do contêiner:fonte
Para motores docker modernos, use este comando:
e para motores mais antigos, use:
fonte
se quiser obtê-lo dentro do contêiner, você pode tentar
fonte
Você pode iniciar seu contêiner com a bandeira
-P
. Isso "atribui" uma porta aleatória à porta exposta de sua imagem.Com
docker port <container id>
você pode ver a porta escolhida aleatoriamente. O acesso é então possível vialocalhost:port
.fonte
Para o meu caso, abaixo funcionou no Mac :
Não consegui acessar IPs de contêiner diretamente no Mac. Eu preciso usar
localhost
com encaminhamento de porta, por exemplo, se a porta for 8000, entãohttp://localhost:8000
Vejo https://docs.docker.com/docker-for-mac/networking/#known-limitations-use-cases-and-workarounds
A resposta original foi de: https://github.com/docker/for-mac/issues/2670#issuecomment-371249949
fonte
Você não pode acessar o IP do docker de fora da máquina host. Se o seu navegador estiver em outra máquina, é melhor mapear a porta do host para a porta do contêiner, passando
-p 8080:8080
comando run.Passando,
-p
você pode mapear a porta do host para a porta do contêiner e um proxy é configurado para encaminhar todo o tráfego da referida porta do host para a porta do contêiner designada.fonte