Oii, Alessandro.
É possível alterar as portas de um container que já está em execução?
Não, não é possível alterar o mapeamento de portas de um container que já está rodando.
O Docker não permite atualizar as portas expostas ou publicadas depois que o container foi criado.
Isso acontece porque o mapeamento de portas faz parte da configuração de rede do container, determinada no momento da criação. Uma vez iniciado, o container mantém essa configuração até ser removido.
Então como alterar as portas?
A única forma é:
Parar o container (se ainda estiver em execução)
docker stop <id-ou-nome>
Remover o container
docker rm <id-ou-nome>
Criar um novo container com o mapeamento desejado, por exemplo:
docker run -d -p 8080:80 nome-da-imagem
Esse processo é normal no Docker. Containers são pensados como recursos efêmeros, fáceis de descartar e recriar.
E se eu não quiser perder dados ao recriar o container?
Se o container tiver arquivos ou dados importantes, a prática correta é usar:
- Volumes (para persistir dados)
- Bind mounts (para usar diretórios do host)
Assim, você pode remover e recriar quantas vezes quiser sem perder nenhum conteúdo.
Exemplo simples com volume:
docker run -d -p 8080:80 -v meu-volume:/usr/share/nginx/html nginx
Recriando o container, o volume permanece intacto.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!