Docker - Gerenciando Portas

No Docker, os próprios contêineres podem ter aplicativos em execução nas portas. Quando você executa um contêiner, se deseja acessar o aplicativo no contêiner por meio de um número de porta, é necessário mapear o número da porta do contêiner para o número da porta do host Docker. Vejamos um exemplo de como isso pode ser alcançado.

Em nosso exemplo, vamos baixar o contêiner Jenkins do Docker Hub. Em seguida, mapearemos o número da porta Jenkins para o número da porta no host Docker.

Step 1 - Primeiro, você precisa fazer uma inscrição simples no Docker Hub.

Step 2 - Depois de se inscrever, você será conectado ao Docker Hub.

Step 3 - A seguir, vamos navegar e encontrar a imagem do Jenkins.

Step 4 - Se você rolar para baixo na mesma página, pode ver o Docker pullcomando. Isso será usado para baixar a imagem Jenkins no servidor Ubuntu local.

Step 5 - Agora vá para o servidor Ubuntu e execute o comando -

sudo docker pull jenkins

Step 6 - Para entender quais portas são expostas pelo contêiner, você deve usar o Docker inspect command para inspecionar a imagem.

Agora vamos aprender mais sobre isso inspect comando.

docker inspect

Este método permite retornar informações de baixo nível sobre o contêiner ou imagem.

Sintaxe

docker inspect Container/Image

Opções

  • Container/Image - O contêiner ou imagem a inspecionar

Valor de retorno

As informações de baixo nível da imagem ou contêiner no formato JSON.

Exemplo

sudo docker inspect jenkins

Resultado

A saída do inspectcomando fornece uma saída JSON. Se observarmos a saída, podemos ver que há uma seção de "ExposedPorts" e ver que há duas portas mencionadas. Um é odata port de 8080 e o outro é o control port de 50000.

Para executar o Jenkins e mapear as portas, você precisa alterar o Docker runcomando e adicione a opção 'p' que especifica o mapeamento da porta. Então, você precisa executar o seguinte comando -

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

O lado esquerdo do mapeamento do número da porta é a porta do host Docker para mapear e o lado direito é o número da porta do contêiner Docker.

Ao abrir o navegador e navegar até o host Docker na porta 8080, você verá o Jenkins instalado e funcionando.