Expor portas de um container previamente criado.

Neste exemplo vamos querer expor a porta 4200

Passos iniciais

# Obter o ID do container
docker ps --all

# Parar o container
docker stop $ID

# Parar o serviço do docker
sudo systemctl stop docker

# visualizar a pasta do container
# deve existir uma pasta que começa com $ID
ls -la /var/lib/docker/containers/

# acessar a pasta do container
cd /var/lib/docker/containers/$FULL_ID

# fazer backup
cp -ra . /tmp/container-original/

Editar o arquivo config.v2.json

DICA 📋 Copie o conteúdo para algum editor que seja possível formatar. Isso ajuda na visualização.

Abaixo o antes e o depois do arquivo:

Diff config.v2.json

Editar o arquivo hostconfig.json

Abaixo o antes e o depois do arquivo:

Diff hostconfig.json

Passos finais

# Iniciar o serviço do docker
# DEVE-SE USAR O RESTART PARA QUE O DOCKER LIMPE O CACHE
sudo systemctl restart docker

# Iniciar o container previamente parado
docker start -ai $ID

# Visualizar se a porta está exposta e listening
docker ps --all
sudo netstat -tulnp | grep -i -P '4200'

Detalhes do ambiente

  • Fedora 28
  • Docker client 1.13.1 / 18.x
  • Docker server 1.13.1 / 18.x

Referências