Docker: dicas e truques na utilização de containers - Parte 1

Renato Groffe
4 min readAug 19, 2019

Neste novo artigo inicio uma série com diversas dicas e truques envolvendo a utilização de containers Docker. Ao elaborar esse primeiro post levei em conta os questões como:

  • Evitar a digitar a digitação de um menor número de comandos, bem como instruções menos extensas;
  • Implementar soluções mais elegantes;
  • Utilizar containers de maneira mais segura.

E aproveito este espaço e o grande interesse por Docker também para um convite.

Tem interesse em conhecer mais sobre Docker? Que tal então fazer um curso completo, cobrindo desde fundamentos a diferentes possibilidades de uso de containers com tecnologias em alta no mercado? Adquira conhecimentos profundos sobre Docker, evolua e se diferencie no mercado, seja você um profissional DevOps, um Desenvolvedor ou um Arquiteto de Software!

Acompanhe o portal Docker Definitivo para ficar por dentro de novidades a serem anunciadas em breve!

Site: https://dockerdefinitivo.com/

Nomeando um container

Ao executar o comando docker run sem o parâmetro --name o Docker assumirá um nome aleatório na criação de um container. Podemos observar isso na imagem a seguir, com container zealous_mendeleev:

Assim, recomenda-se o uso do parâmetro --name justamente para evitar confusões e possibilitar uma rápida identificação quando da existência de numerosos containers dentro de um mesmo host Docker. No próximo exemplo a instrução docker run foi executada já contemplando esta boa prática (para a geração de um container chamado testeapi01):

Portainer: gerenciando containers Docker via interface Web

Muito do trabalho gerenciando containers Docker envolve a digitação de comandos via PowerShell ou Bash. E se pudéssemos simplificar algumas tarefas, utilizando uma interface Web que possibilitasse selecionar vários containers para a execução de uma ação?

A solução para isso está no Portainer, alternativa gratuita e habilitada para uso a partir de um container Docker (imagem portainer/portainer no Docker Hub). Na imagem a seguir é possível observar a utilização do Portainer no gerenciamento de um host Docker uma máquina Ubuntu Desktop 18.04:

Já abordei anteriormente esta ferramenta em maiores detalhes no seguinte artigo:

Docker + Portainer: gerenciando containers a partir de um browser

E tivemos ainda uma live no Canal .NET com o MVP Luiz Carlos Faria cobrindo diversos cenários de uso com esta ferramenta:

Azure Kubernetes Service: orquestrando containers de forma descomplicada na nuvem

O Azure Kubernetes Service é um serviço gerenciado que integra a plataforma de cloud computing da Microsoft, permitindo a criação de clusters Kubernetes na nuvem de forma descomplicada e sem grandes preocupações no que se refere à alocação de recursos de infraestrutura.

Abordei recentemente o uso desta alternativa no seguinte artigo:

Orquestração de containers na Nuvem com o Azure Kubernetes Service (AKS) | Microsoft Tech

E também em um um webinar produzido para a Microsoft e que pode ser assistindo gratuitamente a partir do seguinte link:

Kubernetes: do Pod ao Deployment Automatizado

Publicando sites estáticos com Docker e NGINX

A solução mais comum envolvendo a publicação de sites estáticos com Docker consiste no uso do NGINX, um web server open source que desfruta de grande popularidade entre Profissionais de Desenvolvimento e Infraestrutura.

Importante destacar ainda uma prática bastante comum que é a montagem de uma imagem Docker contendo uma aplicação Angular a partir do NGINX.

Descrevi a utilização do NGINX anteriormente nos seguintes artigos:

Publicando um web site estático na nuvem com Docker, Nginx e Azure Container Instances

Docker no Back e no Front - um exemplo com .NET Core e Angular

O NGINX também foi tema de uma live no Canal .NET neste ano de 2019:

Utilizando Volumes com Docker e Bancos de Dados

Discuti essa questão no artigo a seguir, com exemplos envolvendo a utilização do SQL Server:

Docker + Bancos Relacionais: cuidados importantes na criação de containers

E também em um artigo cobrindo o uso do PostgreSQL via containers Docker:

PostgreSQL + Docker: executando uma instância e o pgAdmin 4 a partir de containers

Docker Compose: criando múltiplos containers de maneira coordenada

O Docker Compose é uma solucão que permite a criação de múltiplos containers de forma coordenada, fazendo uso para isto de um arquivo no formato YAML para a configuração de cada um destes elementos e das redes/networks empregadas na comunicação entre os mesmos.

Importante destacar ainda que o Docker Compose representa uma excelente alternativa para a montagem de ambientes de Desenvolvimento/Testes.

Demonstrei a utilização do Docker Compose em artigos abordando diversas tecnologias:

ASP.NET Core 2.2: implementando Load Balancing com Nginx, Docker e Docker Compose

PostgreSQL + pgAdmin 4 + Docker Compose: montando rapidamente um ambiente para uso

MongoDB + mongo-express + Docker Compose: montando rapidamente um ambiente para uso

MySQL + Adminer + Docker Compose: montando rapidamente um ambiente para uso

O Docker Compose também foi tema de uma live do Canal .NET, na qual foram apresentados diversos exemplos baseados nesta tecnologia:

--

--

Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker