Aprendendo Docker
Do básico à orquestração de contêineres
Descrição do livro
Contêineres Linux não são uma ferramenta nova, mas o Docker está revolucionando a maneira como preparamos ambientes para trabalhar. Com o mote "Build, ship, and run any app, anywhere", o Docker oferece ferramentas que permitem criar, gerenciar, escalar e compartilhar sistemas baseados em hosts Linux – e o melhor: economizando recursos de máquina se comparado à virtualização tradicional baseada em hypervisors.
O livro Aprendendo Docker possibilitará não apenas entender como funcionam os contêineres Linux, mas também como tirar melhor proveito de todo o poder do Docker e suas ferramentas.
Começando pelo básico, você não ficará perdido. Tópicos sobre como criar, iniciar e gravar alterações e automatizar construção de contêineres lhe darão subsídios para decidir como montar os ambientes de suas aplicações. Os tópicos sobre orquestração de contêineres proporcionarão o conhecimento sobre as ferramentas Compose, Machine e Swarm e possibilitarão planejar a utilização do Docker em produção.
Alguns dos conteúdos abordados:
Visão geral do Docker, contêineres e diferenças para a virtualização tradicional com hypervisors.
Diferentes tipos de instalação.
Comandos e fluxo de trabalho para gerenciamento de contêineres e imagens.
Comunicação entre contêineres, volumes, redes, portas e rotas.
Escalabilidade horizontal de maneira fácil.
Contêineres rodando em hosts diferentes, inclusive em provedores de serviços de cloud.
Sumário
- Agradecimentos
- Sobre o autor
- Prefácio
- Capítulo 1 ■ Introdução
- 1.1 Início do Docker
- 1.2 O que é o Docker
- 1.3 Mudança de paradigma
- 1.3.1 Virtualização
- 1.3.2 LXC – Linux Containers e o Docker
- 1.3.3 Docker versus máquinas virtuais
- 1.4 Resumindo o Docker
- 1.5 Arquitetura do ecossistema Docker
- 1.6 Consumindo a API
- 1.6.1 Mostrando a versão
- 1.6.2 Criando um contêiner
- 1.6.3 Removendo um contêiner
- 1.6.4 Listando contêineres e imagens
- 1.6.5 Documentação
- 1.7 Ferramentas de orquestração
- 1.8 Produtos
- 1.8.1 Docker Hub
- 1.8.2 Docker Datacenter
- 1.8.3 Docker Cloud
- Capítulo 2 ■ Como instalar
- 2.1 Instalação no Arch Linux
- 2.1.1 Pré-requisitos para instalação no Arch Linux
- 2.1.2 Como instalar no Arch Linux
- 2.1.3 Rodando Docker no Arch Linux
- 2.2 Instalação no CentOS
- 2.2.1 Pré-requisitos para instalação no CentOS
- 2.2.2 Como instalar no CentOS
- 2.2.3 Rodando Docker no CentOS
- 2.3 Instalação no Debian
- 2.3.1 Pré-requisitos para instalação no Debian
- 2.3.2 Como instalar no Debian Jessie
- 2.3.3 Como instalar no Debian Wheezy
- 2.3.4 Rodando Docker no Debian
- 2.4 Instalação no Fedora
- 2.4.1 Pré-requisitos para instalação no Fedora
- 2.4.2 Como instalar no Fedora
- 2.4.3 Rodando Docker no Fedora
- 2.5 Instalação no Ubuntu
- 2.5.1 Pré-requisitos para instalação no Ubuntu
- 2.5.2 Como instalar no Ubuntu
- 2.5.3 Rodando Docker no Ubuntu
- 2.6 Dica para usar Docker no Linux
- 2.7 Instalação no Mac OS X
- 2.7.1 Pré-requisitos para instalação no Mac OS X
- 2.7.2 Como instalar no Mac OS X
- 2.7.3 Rodando Docker no Mac OS X
- 2.8 Instalação no Microsoft Windows
- 2.8.1 Pré-requisitos para instalação no Windows
- 2.8.2 Como instalar no Windows
- 2.8.3 Rodando Docker no Windows
- 2.1 Instalação no Arch Linux
- Capítulo 3 ■ Primeiros passos
- 3.1 O Docker host
- 3.2 Docker no Linux versus Docker em máquinas virtuais
- 3.3 Primeiro comando
- 3.4 Criando Docker host para sistemas não Linux
- Capítulo 4 ■ Primeiros contêineres
- 4.1 Explicando o Hello World
- 4.2 Rodando o Ubuntu
- 4.2.1 Explicando os parâmetros
- 4.3 Exercitando
- Capítulo 5 ■ Principais comandos
- 5.1 Comando docker info
- 5.2 Comando docker run
- 5.3 Comando docker ps
- 5.4 Comando docker images
- 5.5 Comando docker attach
- 5.6 Comando docker exec
- 5.7 Comandos docker stop e docker start
- 5.8 Comando docker logs
- 5.9 Comando docker inspect
- 5.10 Comandos docker export e docker import
- 5.11 Comandos docker save e docker load
- 5.12 Comando docker pull
- 5.13 Comando docker commit
- 5.14 Comando docker tag
- 5.15 Comandos docker login e docker logout
- 5.16 Comando docker push
- 5.17 Comando docker search
- 5.18 Comando docker rm
- 5.19 Comando docker rmi
- 5.20 Comando docker update
- 5.21 Exercitando
- Capítulo 6 ■ Detalhes e curiosidades sobre o Docker
- 6.1 Copy-on-write
- 6.2 Emagrecendo contêineres
- 6.3 Segurança nos contêineres
- 6.4 Sistemas de arquivos
- 6.5 Alternativas ao Docker Hub
- 6.6 OCI – Open Container Initiative
- 6.7 Segurança com Projeto Nautilus e Docker Bench
- 6.8 Monitoramento de contêineres
- 6.9 Docker sobre VMs
- Capítulo 7 ■ O poderoso docker run
- 7.1 Modos de execução
- 7.2 Parâmetros
- 7.2.1 Opção -i ou --interactive
- 7.2.2 Opção -t ou --tty
- 7.2.3 Opção --rm
- 7.2.4 Opção --name
- 7.2.5 Opção --cidfile
- 7.2.6 Opção --pid
- 7.2.7 Opção --uts
- 7.2.8 Opção --ipc
- 7.2.9 Opção --net
- 7.2.10 Opções --dns=[] e --dns-search
- 7.2.11 Opção --add-host=””
- 7.2.12 Opção --restart
- 7.2.13 Opção --security-opt
- 7.2.14 Opção -m ou --memory
- 7.2.15 Opção --memory-swap
- 7.2.16 Opção -c ou --cpu-shares
- 7.2.17 Opção --cpu-period
- 7.2.18 Opção --cpuset-cpus=””
- 7.2.19 Opção --cpuset-mems=””
- 7.2.20 Opção --cpu-quota=
- 7.2.21 Opção --group-add
- 7.2.22 Opções --cap-add e --cap-drop
- 7.2.23 Opção --priviledged
- 7.2.24 Opção --read-only
- 7.2.25 Opção --device
- 7.2.26 Opção --lxc-conf
- 7.2.27 Opções -–log-driver e --log-opt
- 7.2.28 Opção --entrypoint
- 7.2.29 Opção -P ou--publish-all
- 7.2.30 Opção -p ou --publish
- 7.2.31 Opção -e ou --env
- 7.2.32 Opção -h ou --hostname
- 7.2.33 Opção --link
- 7.2.34 Opção -v, ou --volume
- 7.2.35 Opção --volumes-from
- 7.2.36 Opção -u ou --user
- 7.2.37 Opção -w ou --workdir
- 7.3 Exercitando
- Capítulo 8 ■ Volumes no Docker
- 8.1 Como funciona?
- 8.1.1 Expondo um volume
- 8.1.2 Mapeando um volume
- 8.2 Contêineres específicos para dados
- 8.3 Comando docker volume
- 8.4 Criando volumes independentes de contêiner
- 8.5 Listando volumes
- 8.6 Detalhes de um volume
- 8.7 Utilizando um volume criado
- 8.8 Removendo volumes
- 8.9 Plugins disponíveis
- 8.10 Exercitando
- 8.1 Como funciona?
- Capítulo 9 ■ Redes no Docker
- 9.1 CNM – Container Network Model
- 9.2 Listando as redes disponíveis
- 9.3 Criando uma rede
- 9.4 Conectando um contêiner em uma rede
- 9.5 Inspecionando uma rede
- 9.6 Contêineres em hosts diferentes
- 9.7 Plugins de rede
- 9.8 Exercitando
- Capítulo 10 ■ Outros comandos interessantes
- 10.1 Comando docker cp
- 10.2 Comando docker create
- 10.3 Comando docker diff
- 10.4 Comando docker events
- 10.5 Comando docker history
- 10.6 Comando docker kill
- 10.7 Comandos docker pause e docker unpause
- 10.8 Comando docker port
- 10.9 Comando docker rename
- 10.10 Comando docker restart
- 10.11 Comando docker stats
- Capítulo 11 ■ Dicas sobre imagens
- 11.1 Recomendações
- 11.2 Uso de tags
- 11.3 Dockerfile
- 11.3.1 Instruções do Dockerfile
- 11.4 Builds automatizados
- 11.5 Exercitando
- Capítulo 12 ■ Orquestração
- 12.1 Orquestração com Docker Compose
- 12.1.1 Instalando o Docker Compose
- 12.1.2 Configurando uma aplicação
- 12.1.3 Diretivas do arquivo docker-compose yml
- 12.1.4 Nova versão de docker-compose yml
- 12.1.5 Comandos do Docker Compose
- 12.1.6 Compartilhando configurações no Compose
- 12.1.7 Docker Compose com novo network
- 12.2 Orquestração com Crane
- 12.2.1 Instalando o Crane
- 12.2.2 Configurando uma aplicação
- 12.2.3 Comandos do Crane
- 12.2.4 Diretivas do crane yaml/crane json
- 12.3 Orquestração com Azk
- 12.3.1 Instalação no Mac OS X
- 12.3.2 Instalação no Linux
- 12.3.3 Configurando uma aplicação
- 12.3.4 Comandos e parâmetros
- 12.4 Outros orquestradores
- 12.5 Exercitando
- 12.1 Orquestração com Docker Compose
- Capítulo 13 ■ Docker Machine
- 13.1 Instalação do Docker Machine
- 13.2 Principais comandos do Docker Machine
- 13.2.1 Comando docker-machine create
- 13.2.2 Comando docker-machine active
- 13.2.3 Comando docker-machine config
- 13.2.4 Comando docker-machine env
- 13.2.5 Comando docker-machine inspect
- 13.2.6 Comando docker-machine ip
- 13.2.7 Comando docker-machine kill
- 13.2.8 Comando docker-machine ls
- 13.2.9 Comando docker-machine regenerate-certs
- 13.2.10 Comando docker-machine restart
- 13.2.11 Comando docker-machine rm
- 13.2.12 Comando docker-machine scp e docker-machine ssh
- 13.2.13 Comando docker-machine start
- 13.2.14 Comando docker-machine status
- 13.2.15 Comando docker-machine stop
- 13.2.16 Comando docker-machine upgrade
- 13.2.17 Comando docker-machine url
- 13.3 Docker hosts em versões diferentes
- 13.3.1 Instalando o DVM
- 13.3.2 Listando os Docker clients instalados
- 13.3.3 Instalando uma versão de Docker client específicas
- 13.3.4 Alterando o Docker client atual
- 13.3.5 Demais opções
- 13.4 Exercitando
- Capítulo 14 ■ Docker Swarm
- 14.1 Como funciona
- 14.2 Principais características
- 14.2.1 Suporte para Docker 1.9
- 14.2.2 Alta disponibilidade com réplicas
- 14.2.3 Diversos serviços de discovery suportados
- 14.2.4 Filtros no scheduling
- 14.2.5 Scheduling por portas
- 14.2.6 Scheduling por afinidade
- 14.2.7 Filtro de health check
- 14.2.8 Serviço de descobrimento personalizado
- 14.2.9 Estratégia de scheduling
- 14.3 Exercitando
- Capítulo 15 ■ Docker no Desktop
- Capítulo 16 ■ Conclusão
- 16.1 O conhecimento adquirido
- 16.2 A cultura DevOps
- 16.3 Próximos passos
Sobre o autor
Wellington Figueira da Silva é técnico em telecomunicações pelo instituto SENAI. Registrado no CREA-SP, atua na área de TI desde 2000 desenvolvendo e mantendo websites, sistemas baseados em plataforma web, implantações de VoIP, dando suporte etc. Possui certificação ZCE PHP 5.3 e DCA (Docker Certified Associate) e CKA (Certified Kubernetes… Ver perfil completo ▶
Livros relacionados
Opinião dos leitores
Paulo S P P
Muito bom.
Filipe D F
Gostei muito do livro. Bem objetivo e didático. Gostaria de elogiar também a editora, pela qualidade do livro e a entrega.
Vinícius S C
Gostei bastante do livro! A escrita do livro é de fácil entendimento e a abordagem também, desde os conceitos e definições básicas do Docker. Também ajuda na compreensão do funcionamento da ferramenta. O conteúdo é bem detalhado no que diz respeito as opções para se trabalhar com os comandos do Docker. Gostei também da apresentação das ferramentas de orquestração, especialmente por ter conhecido o projeto brasileiro Azk, que tem proposta similar ao Docker Compose. Recomendo especialmente para os iniciantes em Docker, assim como para aqueles que já tenham algum conhecimento da ferramenta.
Almir d R
Atendeu minhas necessidades. Perfeita!






