Desenvolvedores

Não é possível acessar um contêiner Docker a partir do Mac

O Docker no Mac executa contêineres em uma máquina virtual Linux. Para acessar um contêiner do macOS, geralmente você publica uma porta em localhost.

Aplica-se ao Docker Desktop e OrbStack nas versões atuais do macOS.Verificado: 29 de outubro de 2026

Sintomas

  • curl localhost:8080 falha, mas o serviço funciona dentro do contêiner.
  • Você não consegue enviar pings nem se conectar ao endereço IP do contêiner.
  • Nenhuma interface docker0 aparece no Mac.
  • O serviço funciona no Linux, mas não no Mac.

Possíveis causas

  • A porta não foi publicada. Sem -p, o Docker Desktop não encaminha a porta ao Mac.
  • IPs de contêiner no Docker Desktop. A documentação do Docker Desktop diz que sua rede em ponte não é acessível pelo host.
  • O serviço escuta em 127.0.0.1 no contêiner. Nesse caso, apenas o próprio contêiner pode se conectar a ele.
  • Um par de portas incorreto. Em -p 8080:80, 8080 é a porta do Mac e 80 é a porta do contêiner.

Como verificar

  1. Liste os contêineres em execução e suas portas publicadas.

    docker ps

    Saída A coluna PORTS mostra pares como 0.0.0.0:8080->80/tcp. Nenhum par significa que a porta não foi publicada.

  2. Mostre as portas publicadas de um contêiner.

    docker port my-container
  3. Teste o serviço de dentro do contêiner, se a imagem incluir wget. Uma resposta significa que o serviço funciona.

    docker exec my-container wget -qO- http://localhost:80
  4. Veja qual processo no Mac escuta na porta.

    lsof -nP -iTCP:8080 -sTCP:LISTEN

Como corrigir

  1. Inicie o contêiner com uma porta publicada. O primeiro número é a porta no Mac.

    docker run -d -p 8080:80 nginx
  2. Conecte-se do Mac com localhost e a porta do Mac.

    curl http://localhost:8080
  3. Faça o serviço no contêiner escutar em 0.0.0.0, não em 127.0.0.1. Consulte a documentação do serviço para o ajuste.

  4. Se a porta do Mac estiver em uso, escolha outra. Consulte Porta já está em uso no Mac.

  5. Com o OrbStack, você também pode usar o endereço IP do contêiner ou seu nome container-name.orb.local.

Com o Kilobat

  1. As verificações do Kilobat são executadas no Mac. Use --context container quando o código que falha for executado em um contêiner. O relatório termina com um comando para executar nele.

    kilobat why http://localhost:8080 --context container

Perguntas

Por que não consigo enviar ping a um contêiner no Docker Desktop?

A documentação do Docker diz que o Docker Desktop não consegue rotear tráfego do Mac para contêineres Linux. Publique uma porta.

O OrbStack funciona de forma diferente?

Sim. A documentação do OrbStack diz que é possível conectar-se a contêineres do Mac por endereço IP e por nomes .orb.local.

Fontes

Verificado em 29 de outubro de 2026.