Docker
por Geovani Damião Da Silva Correa

1. Ecossistemas
1.1. Tópico do próximo nívelOrquestradores como Kubernetes, Swarm e OpenShift
1.2. Ferramentas adicionais como Compose, Machine, Registry e Notary
1.3. Comunidade ativa e o repositório de imagens Docker Hub
2. Segurança
2.1. Isolamento de processos em contêineres independentes
2.2. Restrição de recursos para prevenir ataques de negação de serviço
2.3. Controle de acesso aos recursos do host
2.4. Utilização de imagens assinadas para garantir a integridade do software
3. Vantagens
3.1. Portabilidade: ambientes consistentes em diferentes máquinas
3.2. Escalabilidade: fácil replicação e dimensionamento horizontal
3.3. Velocidade: inicialização rápida dos contêineres
3.4. Eficiência: aproveitamento máximo dos recursos do host
4. Ciclo de vida de um contêiner Docker
4.1. 1. Criação da imagem Docker
4.2. 2. Execução do contêiner a partir da imagem
4.3. 3. Parada do contêiner
5. O que é o Docker?
5.1. Docker é uma plataforma de software que permite a criação, implantação e execução de aplicativos em contêineres.
6. Por que usar o Docker?
6.1. - Portabilidade: os contêineres do Docker são executados da mesma maneira em qualquer ambiente.
6.2. - Eficiente uso dos recursos: o Docker compartilha recursos do sistema operacional subjacente.
6.3. - Escalabilidade: é fácil aumentar ou diminuir o número de contêineres em execução.
6.4. - Facilidade de implantação: os contêineres podem ser rapidamente implantados em servidores, nuvem ou localmente.
6.5. - Isolamento: aplicativos em contêineres são separados uns dos outros e do sistema operacional, fornecendo maior segurança.
7. Comandos
7.1. docker build : constrói uma imagem a partir de um Dockerfile
7.2. docker run : executa um contêiner a partir de uma imagem
7.3. docker stop : para a execução de um contêiner em execução
7.4. docker ps : lista os contêineres em execução
7.5. docker images : mostra as imagens disponíveis no host
8. Utilidades
8.1. Facilitação da criação, implantação e execução de aplicativos em ambiente isolado
8.2. Possibilita o empacotamento de um software com todas as suas dependências
8.3. Suporta o uso de imagens pré-existentes e reutilizáveis
9. Uso do Docker
9.1. - Testes: os contêineres do Docker fornecem um ambiente isolado para testar aplicativos.
9.2. - Implantação de aplicativos: o Docker simplifica a implantação de aplicativos em diferentes ambientes, sem se preocupar com as diferenças de configuração.
9.3. - Desenvolvimento de aplicativos: o Docker permite que os desenvolvedores criem ambientes de desenvolvimento consistentes e portáteis.
9.4. - CI/CD: o Docker é frequentemente usado em pipelines de integração contínua e implantação contínua para tornar o processo mais eficiente e confiável.
10. Conceito
10.1. Virtualização a nível de sistema operacional
10.2. Separação de processos em contêineres isolados
10.3. Uso do kernel do host para reduzir overhead
10.4. Máquinas virtuais leves e independência em relação à infraestrutura
11. Componentes do Docker
11.1. Componentes do Docker
11.1.1. É o componente principal do Docker que executa os contêineres e gerencia os recursos do sistema.
11.2. Docker Images
11.2.1. São os modelos para criar contêineres. Cada imagem é composta por um sistema operacional e um conjunto de aplicativos.
11.3. Docker Containers
11.3.1. São instâncias em execução de imagens Docker. Eles têm tudo o que é necessário para executar um aplicativo de forma independente.
11.4. Docker Registry
11.4.1. É um serviço onde as imagens do Docker são armazenadas e compartilhadas.
11.5. Docker Compose
11.5.1. É uma ferramenta que permite definir e executar aplicativos multi-contêineres.
11.6. Docker Swarm
11.6.1. É uma ferramenta nativa do Docker para gerenciamento de cluster e orquestração de contêineres.