Adrian Mouat. Novatec

Documentos relacionados
Karl Matthias Sean P. Kane

Introdução ao GitHub Peter Bell e Brent Beer

Miguel Grinberg. Novatec

Ryan Mitchell. Novatec

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

Novatec Editora Ltda

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40

Benjamin Bengfort Jenny Kim

Allen B. Downey. Novatec

Allan Liska e Timothy Gallo. Novatec

Shyam Seshadri & Brad Green

Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec

Wellington Figueira da Silva. Novatec

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Primeiros Passos com o Arduino

Shelley Powers. Novatec

Primeiros Passos com o Netduino

Jody Culkin e Eric Hagan

Kenneth Reitz Tanya Schlusser

Aaron Newcomb. Novatec

Matheus Marabesi Michael Douglas

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec

Jessey Bullock Jeff T. Parker

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

Novatec Editora Ltda

Raspberry Pi Manual do Usuário

Guia Prático Richard E. Silverman

Aditya Y. Bhargava. Novatec

William Pereira Alves

Ademir C. Gabardo. Novatec

Indira Knight. Novatec

Jonathan Weber e a equipe da LunaMetrics

Adriano Pataro. Novatec

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan

Jarrod Overson e Jason Strimpel

Chris Binnie. Novatec

Semmy Purewal. Novatec

Ademir Ribeiro dos Passos

Adrian Pruteanu. Novatec

André Gugliotti. Novatec

Julia Elman e Mark Lavin. Novatec

Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila A.

Primeiros Passos com o Arduino Massimo Banzi

Arduino Básico. 2ª edição. Michael McRoberts. Novatec

John Paul Mueller. Novatec

Novatec Editora Ltda. [2014].

Guia Mangá. Microprocessadores. Michio Shibuya, Takashi Tonagi e Office Sawa. Novatec

Ademir Cristiano Gabardo. Novatec

Simon Holmes. Novatec

A Arte de Escrever Programas Legíveis

Sérgio de Oliveira. Novatec

Hélio Engholm Jr. Novatec

Luiz Eduardo Borges. Novatec

Arduino Básico Michael McRoberts

Guia Mangá Circuitos Eletrônicos

Desenvolvendo Websites com PHP

AngularJS. Uma abordagem prática e objetiva. Michael Henrique R. Pereira. Novatec

Jonathan Stark Brian Jepson

Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach

Osvaldo Santana Thiago Galesi

Allan Liska Geoffrey Stowe

Christopher Duffy. Novatec

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec

Aravind Shenoy Anirudh Prabhu

Primeiros Passos com o Raspberry Pi

Rodrigo de Barros Paes

Novatec Editora Ltda

Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec

WordPress 3 Básico Stephanie Leary

Desenvolvimento de Grandes Aplicações Web

Guia Mangá Motores elétricos

Análise de Regressão

Robson Santos da Silva

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec

Programando para. iphone e ipad. Aprenda a construir aplicativos para o ios. André Milani. Novatec

Pete Goodliffe. Novatec

Guia Mangá FISIOLOGIA. Etsuro Tanaka, Keiko Koyama, e Becom Co., Ltd. Novatec

2ª Edição Cláudio Torres

Design Centrado no Usuário

Chris Goward. Novatec

Google Analytics Justin Cutroni

Introdução ao GitHub Peter Bell e Brent Beer

Aprenda a Programar com Minecraft

Daniel Marcos Cunha Pereira

David Hows Peter Membrey Eelco Plugge

3ª Edição Nilo Ney Coutinho Menezes

Wolfram Donat. Novatec

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec

Web Interativa com Ajax e PHP

Roberto Cohen. Novatec

Ben Vinegar Anton Kovalyov

PDF Explicado John Whitington

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec

Brandon Rhodes John Goerzen

Guia Mangá Circuitos Eletrônicos

Pramod J. Sadalage Martin Fowler

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee

Edécio Fernando Iepsen

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec

Transcrição:

Adrian Mouat Novatec

Authorized Portuguese translation of the English edition of Using Docker, ISBN 9781491915769 2015 Adrian Mouat. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Using Docker, ISBN 9781491915769 2015 Adrian Mouat. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. Novatec Editora Ltda. 2016. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates PY20160404 Assistente editorial: Priscila A. Yoshimatsu Tradução: Aldir José Coelho da Silva Revisão gramatical: Smirna Cavalheiro Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-492-2 Histórico de impressões: Abril/2016 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 E-mail: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

Sumário Prefácio... 13 Capítulo 1 O que são e por que usar contêineres... 19 Contêineres versus VMs... 20 O Docker e os contêineres... 22 Docker: um histórico... 25 Plugins e reparos...27 Linux de 64 bits... 28 Capítulo 2 Instalação... 30 Instalando o Docker no Linux... 30 Execute o SELinux no modo permissivo...31 Execução sem sudo...32 Instalando o Docker no Mac OS ou no Windows...33 Verificação rápida... 34 Capítulo 3 Primeiras etapas... 36 Executando sua primeira imagem... 36 Comandos básicos...37 Construindo imagens a partir de Dockerfiles...42 Trabalhando com registros... 46 Repositórios privados...47 Usando a imagem oficial do Redis... 48 Conclusão...52 Capítulo 4 Aspectos básicos do Docker... 53 Arquitetura do Docker...53 Tecnologias subjacentes... 54 Tecnologias de suporte...55 Hospedagem do Docker...58 7

8 Usando Docker Como as imagens são construídas...58 Contexto de construção...58 Camadas de imagens... 60 Armazenamento em cache...62 Imagens-base... 63 Instruções dos Dockerfiles... 66 Conectando os contêineres com o mundo...69 Conectando contêineres...70 Gerenciando dados com volumes e contêineres de dados... 72 Compartilhando dados...74 Contêineres de dados...75 Comandos comuns do Docker...76 Comando run...78 Gerenciando contêineres...81 Informações sobre o Docker... 84 Informações sobre contêineres... 84 Lidando com imagens... 86 Usando o registro... 90 Conclusão... 90 Capítulo 5 Usando Docker no desenvolvimento... 92 Diga Hello World!... 92 Automatizando com o Compose...103 O fluxo de trabalho do Compose...105 Conclusão...106 Capítulo 6 Criando um aplicativo web simples... 108 Criando uma página web básica...110 Beneficiando-se de imagens existentes...111 Adicione cache...117 Microsserviços...120 Conclusão...122 Capítulo 7 Distribuição de imagens... 123 Nomeação de imagens e repositórios...124 Docker Hub...125 Builds automatizados...126 Distribuição privada...128 Executando seu próprio registro...128 Registros comerciais...136

Sumário 9 Reduzindo o tamanho das imagens...137 Procedência das imagens...140 Conclusão...140 Capítulo 8 Integração contínua e testes com o Docker... 141 Adicionando testes de unidade ao identidock...142 Criando um contêiner Jenkins...147 Acionando builds...155 Fazendo a imagem prosseguir...156 Uso responsável de tags...156 Preparação e produção...159 Proliferação de imagens...159 Usando o Docker para prover escravos Jenkins...160 Fazendo o backup do Jenkins...160 Soluções de CI hospedadas...161 Os testes e os microsserviços...161 Testando na produção...163 Conclusão...164 Capítulo 9 Implantando contêineres... 165 Provisionando recursos com o Docker Machine...166 Usando um proxy...170 Opções de execução...177 Shell Scripts...177 Usando um gerenciador de processos (ou administrando-os com systemd)...180 Usando uma ferramenta de gerenciamento de configuração...183 Configuração de hosts...188 Selecionando um sistema operacional...188 Selecionando um driver de armazenamento...188 Opções de hospedagem especializadas...191 Triton...192 Google Container Engine...194 Amazon EC2 Container Service...195 Giant Swarm...198 Dados persistentes e contêineres de produção... 200 Compartilhando segredos...201 Salvando segredos na imagem...201 Passando segredos em variáveis de ambiente...201 Passando segredos em volumes...202 Usando um armazenamento chave-valor...203

10 Usando Docker Rede...204 Registro do ambiente de produção...204 Implantação/distribuição contínua...205 Conclusão...205 Capítulo 10 Logging e monitoramento... 207 Logging...208 O logging-padrão do Docker...208 Agregando logs...210 Logging com ELK...211 Logging no Docker com o syslog...222 Capturando logs em arquivos... 230 Monitorando e alertando... 230 Monitorando com ferramentas do Docker... 230 cadvisor...232 Soluções de cluster...233 Soluções comerciais de monitoramento e logging...237 Conclusão...238 Capítulo 11 Rede e descoberta de serviço... 240 Embaixadores...241 Descoberta de serviço...246 etcd...246 SkyDNS...251 Consul...256 Registro...262 Outras soluções...263 Opções de rede...265 Bridge...265 Host...266 Container...267 None...267 Nova rede Docker...267 Tipos e plugins de rede...269 Soluções de rede...270 Overlay...270 Weave...273 Flannel...277 Project Calico...284 Conclusão...289

Sumário 11 Capítulo 12 Orquestração, clustering e gerenciamento... 292 Ferramentas de cluster e orquestração...294 Swarm...294 Fleet...301 Kubernetes... 308 Mesos e Marathon...318 Plataformas de gerenciamento de contêineres...331 Rancher...331 Clocker...333 Tutum...335 Conclusão...336 Capítulo 13 Segurança e limites em contêineres... 338 Questões que devem ser pensadas...339 Defesa em profundidade...341 Privilégio mínimo...342 Protegendo o identidock...343 Segregue os contêineres por host...345 Aplicando atualizações... 346 Evite drivers sem suporte...350 Procedência das imagens...350 Digests do Docker...351 Docker Content Trust...351 Dockerfiles reproduzíveis e confiáveis...356 Dicas de segurança...359 Defina um usuário...360 Limite a rede de contêineres...361 Remova binários setuid/setgid...363 Limite a memória...364 Limite a CPU...365 Limite as reinicializações...367 Limite os sistemas de arquivos...367 Limite as capabilities...368 Aplique limites de recursos (ulimits)...369 Execute um kernel fortalecido...372 Linux Security Modules...372 SELinux...373 AppArmor...376 Auditoria...377

12 Usando Docker Resposta a incidentes...378 Recursos futuros...379 Conclusão...380 Sobre o autor... 381 Colofão... 381