Aprendendo Docker

Do básico à orquestração de contêineres

Aprendendo Docker Esgotado
× Aprendendo Docker

Aprendendo Docker

Compartilhar

Autor: Wellington Figueira da Silva

ISBN impresso: 978-85-7522-486-1
ISBN ebook: 978-85-7522-603-2
Ano: 2016
Páginas: 240
Preço: R$ 59,00

8 opiniões | Opine sobre este livro

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.

Ver menos ▲

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
  • 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
  • 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
  • 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
Ver sumário completo ▼

Sobre o autor

Wellington Figueira da Silva

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 ▶

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!

Ver todas ▼