Usando Docker
Desenvolvendo e implantando software com contêineres
Descrição do livro
Os contêineres do Docker oferecem métodos simples, rápidos e robustos para o desenvolvimento, a distribuição e a execução de softwares, principalmente em ambientes dinâmicos e distribuídos. Com este guia prático, você aprenderá por que os contêineres são tão importantes, o que a adoção do Docker oferece e como torná-lo parte de seu processo de desenvolvimento.
Ideal para desenvolvedores, engenheiros de operações e administradores de sistemas – especialmente os inclinados a adotar uma abordagem DevOps – Usando Docker parte dos aspectos básicos e vai até a execução de vários contêineres em um sistema multi-host com rede e agendamento. O objetivo do livro é guiá-lo pelas etapas necessárias para desenvolver, testar e implantar um aplicativo web com o Docker.
Comece a usar o Docker construindo e implantando um aplicativo web simples.
Use técnicas de Implantação Contínua para levar seu aplicativo para o ambiente de produção muitas vezes ao dia.
Conheça várias opções e técnicas para o registro e o monitoramento de múltiplos contêineres.
Examine a descoberta de rede e de serviços: como os contêineres encontrarão uns aos outros e como conectá-los?
Orquestre e agrupe os contêineres para cuidar do balanceamento de carga, escalonamento, failover e agendamento.
Proteja seu sistema seguindo os princípios da defesa em profundidade e do privilégio mínimo.
Explore os contêineres para construir arquiteturas de microsserviços.
Sumário
- Prefácio
- O que são e por que usar contêineres
- Contêineres versus VMs
- O Docker e os contêineres
- Docker: um histórico
- Plugins e reparos
- Linux de 64 bits
- Instalação
- Instalando o Docker no Linux
- Execute o SELinux no modo permissivo
- Execução sem sudo
- Instalando o Docker no Mac OS ou no Windows
- Verificação rápida
- Primeiras etapas
- Executando sua primeira imagem
- Comandos básicos
- Construindo imagens a partir de Dockerfiles
- Trabalhando com registros
- Repositórios privados
- Usando a imagem oficial do Redis
- Conclusão
- Aspectos básicos do Docker
- Arquitetura do Docker
- Tecnologias subjacentes
- Tecnologias de suporte
- Hospedagem do Docker
- Como as imagens são construídas
- Contexto de construção
- Camadas de imagens
- Armazenamento em cache
- Imagens-base
- Instruções dos Dockerfiles
- Conectando os contêineres com o mundo
- Conectando contêineres
- Gerenciando dados com volumes e contêineres de dados
- Compartilhando dados
- Contêineres de dados
- Comandos comuns do Docker
- Comando run
- Gerenciando contêineres
- Informações sobre o Docker
- Informações sobre contêineres
- Lidando com imagens
- Usando o registro
- Conclusão
- Usando Docker no desenvolvimento
- Diga “Hello World!”
- Automatizando com o Compose
- O fluxo de trabalho do Compose
- Conclusão
- Criando um aplicativo web simples
- Criando uma página web básica
- Beneficiando-se de imagens existentes
- Adicione cache
- Microsserviços
- Conclusão
- Distribuição de imagens
- Nomeação de imagens e repositórios
- Docker Hub
- Builds automatizados
- Distribuição privada
- Executando seu próprio registro
- Registros comerciais
- Reduzindo o tamanho das imagens
- Procedência das imagens
- Conclusão
- Integração contínua e testes com o Docker
- Adicionando testes de unidade ao identidock
- Criando um contêiner Jenkins
- Acionando builds
- Fazendo a imagem prosseguir
- Uso responsável de tags
- Preparação e produção
- Proliferação de imagens
- Usando o Docker para prover escravos Jenkins
- Fazendo o backup do Jenkins
- Soluções de CI hospedadas
- Os testes e os microsserviços
- Testando na produção
- Conclusão
- Implantando contêineres
- Provisionando recursos com o Docker Machine
- Usando um proxy
- Opções de execução
- Shell Scripts
- Usando uma ferramenta de gerenciamento de configuração
- Configuração de hosts
- Selecionando um sistema operacional
- Selecionando um driver de armazenamento
- Opções de hospedagem especializadas
- Triton
- Google Container Engine
- Amazon EC2 Container Service
- Giant Swarm
- Dados persistentes e contêineres de produção
- Compartilhando segredos
- Salvando segredos na imagem
- Passando segredos em variáveis de ambiente
- Passando segredos em volumes
- Usando um armazenamento chave-valor
- Rede
- Registro do ambiente de produção
- Implantação/distribuição contínua
- Conclusão
- Logging e monitoramento
- Logging
- O logging-padrão do Docker
- Agregando logs
- Logging com ELK
- Logging no Docker com o syslog
- Capturando logs em arquivos
- Monitorando e alertando
- Monitorando com ferramentas do Docker
- cAdvisor
- Soluções de cluster
- Soluções comerciais de monitoramento e logging
- Conclusão
- Rede e descoberta de serviço
- Embaixadores
- Descoberta de serviço
- etcd
- SkyDNS
- Consul
- Registro
- Outras soluções
- Opções de rede
- Bridge
- Host
- Container
- None
- Nova rede Docker
- Tipos e plugins de rede
- Soluções de rede
- Overlay
- Weave
- Flannel
- Project Calico
- Conclusão
- Orquestração, clustering e gerenciamento
- Ferramentas de cluster e orquestração
- Swarm
- Fleet
- Kubernetes
- Mesos e Marathon
- Plataformas de gerenciamento de contêineres
- Rancher
- Clocker
- Tutum
- Conclusão
- Segurança e limites em contêineres
- Questões que devem ser pensadas
- Defesa em profundidade
- Privilégio mínimo
- Protegendo o identidock
- Segregue os contêineres por host
- Aplicando atualizações
- Evite drivers sem suporte
- Procedência das imagens
- Digests do Docker
- Docker Content Trust
- Dockerfiles reproduzíveis e confiáveis
- Dicas de segurança
- Defina um usuário
- Limite a rede de contêineres
- Remova binários setuid/setgid
- Limite a memória
- Limite a CPU
- Limite as reinicializações
- Limite os sistemas de arquivos
- Limite as capabilities
- Aplique limites de recursos (ulimits)
- Execute um kernel fortalecido
- Linux Security Modules
- SELinux
- AppArmor
- Auditoria
- Resposta a incidentes
- Recursos futuros
- Conclusão
- Sobre o autor
- Colofão
Sobre o autor
Adrian Mouat é pesquisador-chefe na Container Solutions. Ele trabalhou em projetos de software de vários tipos, abrangendo desde pequenos aplicativos web a softwares de análise de dados de larga escala.… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
Michael O
Comprei para iniciar os estudos no Docker, e o livro é bem completo. Embora o Docker se atualize constantemente, é um bom começo.
Michell S F
Livro aborda o assunto de maneira bem clara e completa. Excelente para quem é iniciante na utilização da ferramenta.
Marcos F
Um ótimo livro que mostra na prática como se usar docker, inicia explicando bem pra quem não sabia nada sobre o assunto, apesar de que por conta de ser um livro que foca mais na prática, é recomendado ler o manual pra quem tem mais interesse em como funciona internamente. Também tem um pouco sobre orquestração de containers.
Italivio C
Gostei do livro, bem completo.





