Docker: dicas e truques na utilização de containers - Parte 1
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!
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:
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: