Se você está tentando subir um contêiner Docker no Linux e se depara com o erro informando que uma porta já está em uso, não se preocupe — isso é comum e fácil de resolver com alguns comandos.

Neste post, vou te mostrar passo a passo como identificar o que está usando a porta e o que fazer para liberar ou contornar o problema.

🧠 Por que isso acontece?

Ao executar um comando como:

docker run -p 8080:80 nome_da_imagem

Você está dizendo: “mapear a porta 8080 do host para a porta 80 do contêiner”. O erro ocorre se outra aplicação já estiver usando a porta 8080 no seu sistema.

🔍 Passo 1 – Verificar quem está usando a porta

Substitua 8080 pela porta que você está tentando usar:

sudo lsof -i :8080

Exemplo de saída:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3  1234 user   10u  IPv4 123456      0t0  TCP *:http-alt (LISTEN)

Veja o número do PID (Process ID) — ele representa o processo que está utilizando a porta.

🛑 Passo 2 – Encerrar o processo (opcional)

Se for seguro encerrar o processo, use o comando:

sudo kill -9 1234

Substitua 1234 pelo PID identificado no passo anterior.

🐳 Passo 3 – Verificar se um contêiner Docker está usando a porta

Talvez outro contêiner já esteja rodando e usando a porta desejada. Para verificar:

docker ps

Se encontrar um contêiner usando a porta, pare ele com:

docker stop NOME_OU_ID_DO_CONTAINER

🔁 Passo 4 – Usar outra porta no host

Se não quiser ou não puder parar o processo, a solução mais simples é usar outra porta do seu host:

docker run -p 8081:80 nome_da_imagem

Neste caso:

  • 8081 → Porta livre no host

  • 80 → Porta interna do contêiner

🧼 Dica Extra – Ver todas as portas em uso

Quer ver tudo o que está escutando portas no seu sistema? Use:

sudo netstat -tuln

Ou, de forma mais moderna:

ss -tuln

✅ Conclusão

Erros de porta em uso no Docker são comuns e simples de resolver. O segredo está em identificar rapidamente o que está usando a porta e decidir se você:

  • encerra o processo,

  • para um contêiner,

  • ou simplesmente muda a porta no comando Docker.

Com esses passos, você volta a trabalhar com seus contêineres rapidamente, sem dores de cabeça.