SlideShare uma empresa Scribd logo
Docker do básico à
orquestração de containers
Meetup de Laravel em São Paulo #3
Sobre
• $nome = 'Wellington F. Silva';
• $nick = ['_wsilva, 'tom', 'boina',
'fisi', 'iéié'];
• $work = 'developer';
• $background = '~2000';
• $titles = ['ZCE PHP 5.3', 'Técnico
Telecom', 'Quase Bacharel SI -
USP'];
• $contact = ['twitter' => '_wsilva'];
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
!
!
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
!
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
• Docker
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
• Docker
• Orquestração de containers
Overview
Overview
• Virtualization, LXC, VMs vs Containers
!
!
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
!
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
• Uso Básico
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
• Uso Básico
• Orquestração de Containers
Virtualização
Um sistema operacional
completo (Guest)
rodando sobre o sistema
operacional que está
rodando na máquina
física (Host)
Opinião pessoal 

(mais defin. ver no google)
LXC - Linux Containers
• Isolamento de processo
(chroot)
!
!
!




LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
!
!




LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
• Limitação de memória
!




LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
• Limitação de memória
• Isolamento de File System




LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
• Limitação de memória
• Isolamento de File System
• Dificuldade de
compartilhamento de
volumes
LXC - Linux Containers
• Instalando LXC: 

sudo apt-get install lxc






LXC - Linux Containers
• Instalando LXC: 

sudo apt-get install lxc
• Criando um container busybox (minimalista): 

sudo lxc-create --template busybox --name testando

setting root password to "root"

Password for 'root' changed
LXC - Linux Containers
• Rodando:

sudo lxc-start --name testando

udhcpc: SIOCGIFINDEX: No such device

Please press Enter to activate this console.

/


LXC - Linux Containers
• Rodando:

sudo lxc-start --name testando

udhcpc: SIOCGIFINDEX: No such device

Please press Enter to activate this console.

/
• Parando (tem que usar um outro terminal no host):

sudo lxc-stop --name testando
Docker
• Copy-on-write (AUFS)
!
!
!
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
!
!
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
!
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
• Automatic build (Dockerfile)
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
• Automatic build (Dockerfile)
• Component re-use (FROM: image)
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
• Automatic build (Dockerfile)
• Component re-use (FROM: image)
• Sharing (dockerhub/registry)
VMs vs Docker
VMs vs Docker
• Sobe rápido
!
!


VMs vs Docker
• Sobe rápido
• Padronização
!


VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação


VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
• Overhead de IO
!
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
• Overhead de IO
• Não tão isolado
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
• Overhead de IO
• Não tão isolado
• Só Linux
Tips
• Não é VM, é CONTAINER
!
!


Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
!


Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
• Conceito de Guest e Host, também vale.


Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
• Conceito de Guest e Host, também vale.
• Imagem vs Container (imagem é estática, container é
o que roda). Similar a VM e imagem da VM (AMI)
Basics
• docker pull
!
!
!
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics
• docker pull
• docker ps
!
!
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics
• docker pull
• docker ps
• docker images
!
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics
• docker pull
• docker ps
• docker images
• docker run
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics
• docker pull
• docker ps
• docker images
• docker run
• docker exec
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics
• docker pull
• docker ps
• docker images
• docker run
• docker exec
• docker commit
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics
• docker pull
• docker ps
• docker images
• docker run
• docker exec
• docker commit
• docker inspect
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics
• docker pull
• docker ps
• docker images
• docker run
• docker exec
• docker commit
• docker inspect
• docker push
Tutorial de introdução (10min): https://www.docker.com/tryit/
Instalation
• Debian, Arch, Fedora,
CentOS, AWS EC2, Mac OS
X, Suse, Microsoft Ubuntu,
Microsoft Windows, etc...


https://docs.docker.com/installation/#installation
Instalation
• Debian, Arch, Fedora,
CentOS, AWS EC2, Mac OS
X, Suse, Microsoft Ubuntu,
Microsoft Windows, etc...
• Mac OS X e Microsoft
Windows (boot2docker-vm)
https://docs.docker.com/installation/#installation
Docker Machine
• Cria uma VM com
boot2docker onde você
quiser










https://docs.docker.com/machine/
Docker Machine
• Cria uma VM com
boot2docker onde você
quiser
• Amazon Web Services, Digital
Ocean, Google Compute
Engine, IBM Softlayer,
Microsoft Azure, Openstack,
etc...


https://docs.docker.com/machine/
Docker Machine
• Cria uma VM com
boot2docker onde você
quiser
• Amazon Web Services, Digital
Ocean, Google Compute
Engine, IBM Softlayer,
Microsoft Azure, Openstack,
etc...
• Preparado para criação de
clusters (Swarms)
https://docs.docker.com/machine/
Docker Compose
DOCKER COMPOSE
e não composeeerrr...
Docker Compose
• Antigo fig.sh






https://docs.docker.com/compose/
Docker Compose
• Antigo fig.sh
• Arquivo yml que descreve os
microsistemas




https://docs.docker.com/compose/
Docker Compose
• Antigo fig.sh
• Arquivo yml que descreve os
microsistemas
• Comandos: build, help, kill,
logs, port, ps, pull, rm, run,
scale, start, stop, up
https://docs.docker.com/compose/
Why Compose?
• Imagine que você entrou no E-Bahya






Why Compose?
• Imagine que você entrou no E-Bahya
• Maior e-commerce da África Latina com trocentos acessos por
minutos




Why Compose?
• Imagine que você entrou no E-Bahya
• Maior e-commerce da África Latina com trocentos acessos por
minutos
• Cada serviço do E-Bahya roda em um servidor na nuvem Alazão
Jeg Servers (escalável de acordo com a qtde de acessos - sempre
entre 5 e 10 instâncias rodando)
Why Compose?
• Imagine que você entrou no E-Bahya
• Maior e-commerce da África Latina com trocentos acessos por
minutos
• Cada serviço do E-Bahya roda em um servidor na nuvem Alazão
Jeg Servers (escalável de acordo com a qtde de acessos - sempre
entre 5 e 10 instâncias rodando)
• Serviços se comunicam entre si via rede privada
Why Compose?
Como você monta o ambiente na sua máquina?














Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc













Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc

b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1











Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc

b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1

c) vou levantar um virtualbox com todos os serviços instalados









Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc

b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1

c) vou levantar um virtualbox com todos os serviços instalados

d) manjo tudo de docker vou montar um container com a distro linux
que está nos servidores e os pacotes nas versões certas.





Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc

b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1

c) vou levantar um virtualbox com todos os serviços instalados

d) manjo tudo de docker vou montar um container com a distro linux
que está nos servidores e os pacotes nas versões certas.

e) um container para cada serviço: um pro banco, um para a sessão,
um pro servidor web, um para o elastic search, um para o frontend e
um para o backend e assim por diante
Live Demo
anything can go wrong now
Fontes
https://github.com/wsilva/meetup-laravel
Q&A
Slides

Mais conteúdo relacionado

Mais procurados

Docker volumes
Docker volumesDocker volumes
Docker volumes
Marcos-Rafael Machado
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e Compose
Roberto Hashioka
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
Luís Bianchin
 
Apresentação docker
Apresentação dockerApresentação docker
Apresentação docker
Marcelo Fleury
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
Hugo Henley
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
MOSS Open Source Services
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
Marcelo Santos
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
Fernando Ike
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
Michael Castillo Granados
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
Hugo Leonardo Costa e Silva
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
Wellington Silva
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
Matheus Fidelis
 
Testadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerTestadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de Docker
Stefan Teixeira
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
Leonardo de Oliveira
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
Rodrigo Emereciano
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
Mauricio Martins
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
Fernando Ike
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
Tobias Sette
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
Waldemar Neto
 
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e AnsibleTDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
Stefan Teixeira
 

Mais procurados (20)

Docker volumes
Docker volumesDocker volumes
Docker volumes
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e Compose
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
Apresentação docker
Apresentação dockerApresentação docker
Apresentação docker
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
 
Testadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerTestadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de Docker
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e AnsibleTDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
 

Destaque

Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
Marcio Trindade
 
Docker para deploy de aplicação
Docker para deploy de aplicaçãoDocker para deploy de aplicação
Docker para deploy de aplicação
Mundo Docker
 
Blue Green Deployment com Docker
Blue Green Deployment com DockerBlue Green Deployment com Docker
Blue Green Deployment com Docker
Pedro Cavalheiro
 
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-sourceDa Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Raphael Paiva
 
Into the ZF2 Service Manager
Into the ZF2 Service ManagerInto the ZF2 Service Manager
Into the ZF2 Service Manager
Chris Tankersley
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
Mundo Docker
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
Alefe Variani
 
DevOps utilizando Docker
DevOps utilizando DockerDevOps utilizando Docker
DevOps utilizando Docker
thdotnet
 
Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...
Elo7
 

Destaque (9)

Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Docker para deploy de aplicação
Docker para deploy de aplicaçãoDocker para deploy de aplicação
Docker para deploy de aplicação
 
Blue Green Deployment com Docker
Blue Green Deployment com DockerBlue Green Deployment com Docker
Blue Green Deployment com Docker
 
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-sourceDa Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
 
Into the ZF2 Service Manager
Into the ZF2 Service ManagerInto the ZF2 Service Manager
Into the ZF2 Service Manager
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
 
DevOps utilizando Docker
DevOps utilizando DockerDevOps utilizando Docker
DevOps utilizando Docker
 
Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...
 

Semelhante a Talk no Meetup LaravelSP #3

Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
Wallison Marra
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
Rafael Chiavegatto
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
SeRHmatica - Sistemas e Serviços
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
dadalt1
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
David Ruiz
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
Uira Ribeiro
 
Vagrant sti
Vagrant stiVagrant sti
Vagrant sti
Hugo Henley
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Rodrigo Cândido da Silva
 
Docker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalarDocker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalar
gustavomtborges
 
Docker.io:
Docker.io: Docker.io:
Docker.io:
Alexandre Teles
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
Matheus Fidelis
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
Francisco Gonçalves
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
Rafael Gomes
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
Eustaquio Guimaraes mendesbsb
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
Matheus Fidelis
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
Evandro Silvestre
 
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
Wagner Bianchi
 
O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)
Wellington Silva
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
Ignacio Nin
 
O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)
Wellington Silva
 

Semelhante a Talk no Meetup LaravelSP #3 (20)

Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Vagrant sti
Vagrant stiVagrant sti
Vagrant sti
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
Docker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalarDocker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalar
 
Docker.io:
Docker.io: Docker.io:
Docker.io:
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
 
O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
 
O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)
 

Mais de Wellington Silva

Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)
Wellington Silva
 
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Wellington Silva
 
Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)
Wellington Silva
 
Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)
Wellington Silva
 
Começando com o Docker (HackerHouseBR)
Começando com o Docker (HackerHouseBR)Começando com o Docker (HackerHouseBR)
Começando com o Docker (HackerHouseBR)
Wellington Silva
 
Do monolito aos microserviços com Docker (PHPSP+IMA)
Do monolito aos microserviços com Docker (PHPSP+IMA)Do monolito aos microserviços com Docker (PHPSP+IMA)
Do monolito aos microserviços com Docker (PHPSP+IMA)
Wellington Silva
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
Wellington Silva
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Wellington Silva
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
Wellington Silva
 
Docker from basics to orchestration (PHPConfBr2015)
Docker from basics to orchestration (PHPConfBr2015)Docker from basics to orchestration (PHPConfBr2015)
Docker from basics to orchestration (PHPConfBr2015)
Wellington Silva
 
Talk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about DockerTalk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about Docker
Wellington Silva
 
Gnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USPGnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USP
Wellington Silva
 
Light Talk Docker Compose
Light Talk Docker ComposeLight Talk Docker Compose
Light Talk Docker Compose
Wellington Silva
 

Mais de Wellington Silva (13)

Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)
 
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
 
Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)
 
Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)
 
Começando com o Docker (HackerHouseBR)
Começando com o Docker (HackerHouseBR)Começando com o Docker (HackerHouseBR)
Começando com o Docker (HackerHouseBR)
 
Do monolito aos microserviços com Docker (PHPSP+IMA)
Do monolito aos microserviços com Docker (PHPSP+IMA)Do monolito aos microserviços com Docker (PHPSP+IMA)
Do monolito aos microserviços com Docker (PHPSP+IMA)
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Docker from basics to orchestration (PHPConfBr2015)
Docker from basics to orchestration (PHPConfBr2015)Docker from basics to orchestration (PHPConfBr2015)
Docker from basics to orchestration (PHPConfBr2015)
 
Talk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about DockerTalk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about Docker
 
Gnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USPGnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USP
 
Light Talk Docker Compose
Light Talk Docker ComposeLight Talk Docker Compose
Light Talk Docker Compose
 

Talk no Meetup LaravelSP #3

  • 1. Docker do básico à orquestração de containers Meetup de Laravel em São Paulo #3
  • 2. Sobre • $nome = 'Wellington F. Silva'; • $nick = ['_wsilva, 'tom', 'boina', 'fisi', 'iéié']; • $work = 'developer'; • $background = '~2000'; • $titles = ['ZCE PHP 5.3', 'Técnico Telecom', 'Quase Bacharel SI - USP']; • $contact = ['twitter' => '_wsilva'];
  • 3. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) ! !
  • 4. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) • LXC !
  • 5. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) • LXC • Docker
  • 6. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) • LXC • Docker • Orquestração de containers
  • 8. Overview • Virtualization, LXC, VMs vs Containers ! !
  • 9. Overview • Virtualization, LXC, VMs vs Containers • O que é Docker !
  • 10. Overview • Virtualization, LXC, VMs vs Containers • O que é Docker • Uso Básico
  • 11. Overview • Virtualization, LXC, VMs vs Containers • O que é Docker • Uso Básico • Orquestração de Containers
  • 12. Virtualização Um sistema operacional completo (Guest) rodando sobre o sistema operacional que está rodando na máquina física (Host) Opinião pessoal 
 (mais defin. ver no google)
  • 13. LXC - Linux Containers • Isolamento de processo (chroot) ! ! ! 
 

  • 14. LXC - Linux Containers • Isolamento de processo (chroot) • Isolamento de rede ! ! 
 

  • 15. LXC - Linux Containers • Isolamento de processo (chroot) • Isolamento de rede • Limitação de memória ! 
 

  • 16. LXC - Linux Containers • Isolamento de processo (chroot) • Isolamento de rede • Limitação de memória • Isolamento de File System 
 

  • 17. LXC - Linux Containers • Isolamento de processo (chroot) • Isolamento de rede • Limitação de memória • Isolamento de File System • Dificuldade de compartilhamento de volumes
  • 18. LXC - Linux Containers • Instalando LXC: 
 sudo apt-get install lxc 
 
 

  • 19. LXC - Linux Containers • Instalando LXC: 
 sudo apt-get install lxc • Criando um container busybox (minimalista): 
 sudo lxc-create --template busybox --name testando
 setting root password to "root"
 Password for 'root' changed
  • 20. LXC - Linux Containers • Rodando:
 sudo lxc-start --name testando
 udhcpc: SIOCGIFINDEX: No such device
 Please press Enter to activate this console.
 / 

  • 21. LXC - Linux Containers • Rodando:
 sudo lxc-start --name testando
 udhcpc: SIOCGIFINDEX: No such device
 Please press Enter to activate this console.
 / • Parando (tem que usar um outro terminal no host):
 sudo lxc-stop --name testando
  • 22.
  • 23.
  • 25. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) ! ! !
  • 26. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) ! !
  • 27. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) • Automatic build (Dockerfile) !
  • 28. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image)
  • 29. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image) • Sharing (dockerhub/registry)
  • 31. VMs vs Docker • Sobe rápido ! ! 

  • 32. VMs vs Docker • Sobe rápido • Padronização ! 

  • 33. VMs vs Docker • Sobe rápido • Padronização • Fácil replicação 

  • 34. VMs vs Docker • Sobe rápido • Padronização • Fácil replicação • Melhor utilização de recursos
  • 35. VMs vs Docker • Sobe rápido • Padronização • Fácil replicação • Melhor utilização de recursos • Overhead de IO !
  • 36. VMs vs Docker • Sobe rápido • Padronização • Fácil replicação • Melhor utilização de recursos • Overhead de IO • Não tão isolado
  • 37. VMs vs Docker • Sobe rápido • Padronização • Fácil replicação • Melhor utilização de recursos • Overhead de IO • Não tão isolado • Só Linux
  • 38. Tips • Não é VM, é CONTAINER ! ! 

  • 39. Tips • Não é VM, é CONTAINER • Porque container (padrão de transporte) ! 

  • 40. Tips • Não é VM, é CONTAINER • Porque container (padrão de transporte) • Conceito de Guest e Host, também vale. 

  • 41. Tips • Não é VM, é CONTAINER • Porque container (padrão de transporte) • Conceito de Guest e Host, também vale. • Imagem vs Container (imagem é estática, container é o que roda). Similar a VM e imagem da VM (AMI)
  • 42. Basics • docker pull ! ! ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 43. Basics • docker pull • docker ps ! ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 44. Basics • docker pull • docker ps • docker images ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 45. Basics • docker pull • docker ps • docker images • docker run ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 46. Basics • docker pull • docker ps • docker images • docker run • docker exec ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 47. Basics • docker pull • docker ps • docker images • docker run • docker exec • docker commit ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 48. Basics • docker pull • docker ps • docker images • docker run • docker exec • docker commit • docker inspect Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 49. Basics • docker pull • docker ps • docker images • docker run • docker exec • docker commit • docker inspect • docker push Tutorial de introdução (10min): https://www.docker.com/tryit/
  • 50. Instalation • Debian, Arch, Fedora, CentOS, AWS EC2, Mac OS X, Suse, Microsoft Ubuntu, Microsoft Windows, etc... 
 https://docs.docker.com/installation/#installation
  • 51. Instalation • Debian, Arch, Fedora, CentOS, AWS EC2, Mac OS X, Suse, Microsoft Ubuntu, Microsoft Windows, etc... • Mac OS X e Microsoft Windows (boot2docker-vm) https://docs.docker.com/installation/#installation
  • 52. Docker Machine • Cria uma VM com boot2docker onde você quiser 
 
 
 
 
 https://docs.docker.com/machine/
  • 53. Docker Machine • Cria uma VM com boot2docker onde você quiser • Amazon Web Services, Digital Ocean, Google Compute Engine, IBM Softlayer, Microsoft Azure, Openstack, etc... 
 https://docs.docker.com/machine/
  • 54. Docker Machine • Cria uma VM com boot2docker onde você quiser • Amazon Web Services, Digital Ocean, Google Compute Engine, IBM Softlayer, Microsoft Azure, Openstack, etc... • Preparado para criação de clusters (Swarms) https://docs.docker.com/machine/
  • 56. DOCKER COMPOSE e não composeeerrr...
  • 57. Docker Compose • Antigo fig.sh 
 
 
 https://docs.docker.com/compose/
  • 58. Docker Compose • Antigo fig.sh • Arquivo yml que descreve os microsistemas 
 
 https://docs.docker.com/compose/
  • 59. Docker Compose • Antigo fig.sh • Arquivo yml que descreve os microsistemas • Comandos: build, help, kill, logs, port, ps, pull, rm, run, scale, start, stop, up https://docs.docker.com/compose/
  • 60. Why Compose? • Imagine que você entrou no E-Bahya 
 
 

  • 61. Why Compose? • Imagine que você entrou no E-Bahya • Maior e-commerce da África Latina com trocentos acessos por minutos 
 

  • 62. Why Compose? • Imagine que você entrou no E-Bahya • Maior e-commerce da África Latina com trocentos acessos por minutos • Cada serviço do E-Bahya roda em um servidor na nuvem Alazão Jeg Servers (escalável de acordo com a qtde de acessos - sempre entre 5 e 10 instâncias rodando)
  • 63. Why Compose? • Imagine que você entrou no E-Bahya • Maior e-commerce da África Latina com trocentos acessos por minutos • Cada serviço do E-Bahya roda em um servidor na nuvem Alazão Jeg Servers (escalável de acordo com a qtde de acessos - sempre entre 5 e 10 instâncias rodando) • Serviços se comunicam entre si via rede privada
  • 64.
  • 65. Why Compose? Como você monta o ambiente na sua máquina? 
 
 
 
 
 
 

  • 66.
  • 67. Why Compose? Como você monta o ambiente na sua máquina? a) vou instalando os pacotes: do banco, nginx / apache, etc
 
 
 
 
 
 

  • 68. Why Compose? Como você monta o ambiente na sua máquina? a) vou instalando os pacotes: do banco, nginx / apache, etc
 b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
 
 
 
 
 

  • 69. Why Compose? Como você monta o ambiente na sua máquina? a) vou instalando os pacotes: do banco, nginx / apache, etc
 b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
 c) vou levantar um virtualbox com todos os serviços instalados
 
 
 
 

  • 70. Why Compose? Como você monta o ambiente na sua máquina? a) vou instalando os pacotes: do banco, nginx / apache, etc
 b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
 c) vou levantar um virtualbox com todos os serviços instalados
 d) manjo tudo de docker vou montar um container com a distro linux que está nos servidores e os pacotes nas versões certas.
 
 

  • 71. Why Compose? Como você monta o ambiente na sua máquina? a) vou instalando os pacotes: do banco, nginx / apache, etc
 b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
 c) vou levantar um virtualbox com todos os serviços instalados
 d) manjo tudo de docker vou montar um container com a distro linux que está nos servidores e os pacotes nas versões certas.
 e) um container para cada serviço: um pro banco, um para a sessão, um pro servidor web, um para o elastic search, um para o frontend e um para o backend e assim por diante
  • 72. Live Demo anything can go wrong now
  • 74. Q&A