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.