Identifique o serviço antes de pará-lo
Liste os contêineres ativos e suas portas publicadas. Procure o lado do host em um mapeamento como 8080->80/tcp. No Linux, ss -ltnp também lista listeners TCP; alguns detalhes exigem privilégios adequados.
docker ps --format 'table {{.Names}}\t{{.Ports}}'Uma lista vazia de contêineres não prova que a porta esteja livre: um programa do host pode ocupá-la. Confira também o endereço e o protocolo. Identifique o serviço e sua função antes de pará-lo.
Escolha uma porta disponível no host
Para este exemplo web temporário, confira se a porta host 8081 está livre e o nome devsheet-web não está em uso. O exemplo usa o endereço de loopback do host e inicia nginx em primeiro plano.
docker run --rm --name devsheet-web -p 127.0.0.1:8081:80 nginxO mapeamento é HOST_IP:HOST_PORT:CONTAINER_PORT. Só a porta do host muda para 8081; nginx continua na porta interna 80. Teste em outro terminal. Ctrl+C para este exemplo, e --rm remove seu contêiner.
Atualize o mapeamento no Compose
No arquivo Compose, altere a entrada ports do serviço desejado para 127.0.0.1:8081:80, depois de conferir a porta. Recrie esse serviço para aplicar o mapeamento; substitua web pelo nome real.
docker compose ps
docker compose up -d webUma simples reinicialização não aplica um mapeamento alterado. Confira o projeto Compose antes de recriar o serviço e preserve montagens e dados. Parar contêineres não relacionados pode interromper outros serviços.
Confira o serviço publicado
Confira o mapeamento ativo e envie uma requisição HTTP para a porta host escolhida. O exemplo nginx deve responder; outras aplicações podem demorar para iniciar.
docker ps --format 'table {{.Names}}\t{{.Ports}}'
curl --head http://127.0.0.1:8081/Se o conflito continuar, confira endereço, porta e protocolo, incluindo listeners IPv4 e IPv6. Um erro HTTP após conectar é diferente de uma falha de bind. Examine os logs e a configuração do serviço afetado.