SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
DO BÁSICO A ORQUESTRAÇÃO
DOCKER
TEXT
WELLINGTON F. SILVA
▸ Pai
▸ Técnico Telecom,
▸ Programador,
▸ Devops
▸ Instrutor
▸ Escritor
TEXT
AGENDA
▸ O que é Docker
▸ Breve história
▸ Como funciona
▸ Principais comandos
▸ Exemplos
▸ Estudo sobre Docker em Produção
O QUE É DOCKER?
FERRAMENTA PARA
VIRTUALIZAÇÃO NO NÍVEL
DO SISTEMAS OPERACIONAL
O QUE É DOCKER?
▸ Sistemas de Containers Linux
O QUE É DOCKER?
▸ Sistemas de Containers Linux
▸ Leve e rápido
O QUE É DOCKER?
▸ Sistemas de Containers Linux
▸ Leve e rápido
▸ Open Source
O QUE É DOCKER?
▸ Sistemas de Containers Linux
▸ Leve e rápido
▸ Open Source
▸ Diversas ferramentas de cluster e orquestração
O QUE É DOCKER?
▸ Sistemas de Containers Linux
▸ Leve e rápido
▸ Open Source
▸ Diversas ferramentas de cluster e orquestração
▸ Facilita micro serviços
O QUE É DOCKER?
▸ Sistemas de Containers Linux
▸ Leve e rápido
▸ Open Source
▸ Diversas ferramentas de cluster e orquestração
▸ Facilita micro serviços
▸ Facilita emprego do 12 factor
O QUE É DOCKER?
▸ Sistemas de Containers Linux
▸ Leve e rápido
▸ Open Source
▸ Diversas ferramentas de cluster e orquestração
▸ Facilita micro serviços
▸ Facilita emprego do 12 factor
▸ Melhora a distribuição de recursos
HISTÓRIA
TEXT
HISTÓRIA
▸ 21/03/2013 1ª Demo
TEXT
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
TEXT
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
▸ Base para dotCloud
TEXT
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
▸ Base para dotCloud
▸ 23/07/2013 - Ben Golub, CEO da
Gluster e da Plaxo se une ao time
TEXT
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
▸ Base para dotCloud
▸ 23/07/2013 - Ben Golub, CEO da
Gluster e da Plaxo se une ao time
▸ 22/01/2014 2º aporte de US$ 15
mi
TEXT
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
TEXT
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
TEXT
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
▸ 15/10/2014 Microsoft anuncia
Docker no Windows 2016 sever
TEXT
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
▸ 15/10/2014 Microsoft anuncia
Docker no Windows 2016 sever
▸ 14/04/2015 4º aporte US$ 95 mi
TEXT
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
▸ 15/10/2014 Microsoft anuncia
Docker no Windows 2016 sever
▸ 14/04/2015 4º aporte US$ 95 mi
▸ 22/06/2015 Open Container
Initiative
COMO FUNCIONA?
PROCESSOS
+
KERNEL NAMESPACES
+
CGROUPS
PROCESSOS
PID=1
KERNEL NAMESPACES
(O QUE O PROCESSO PODE VER)
CGROUPS
(O QUE O PROCESSO PODE USAR)
VM X CONTAINERS
ARQUITETURA
WINDOWS VS OSX VS LINUX
Windows 2016
IMAGENS
PRINCIPAIS COMANDOS
PRINCIPAIS COMANDOS
CRIAR CONTAINERS
docker run [opções] imagem
[comando|parâmetro]
PRINCIPAIS COMANDOS
LISTAR CONTAINERS
docker ps [opções]
PRINCIPAIS COMANDOS
LISTAR IMAGENS
docker images [opções]
PRINCIPAIS COMANDOS
REMOVER CONTAINERS
docker rm [opções] id|nome
PRINCIPAIS COMANDOS
REMOVER IMAGENS
docker rmi [opções] id|tag
PRINCIPAIS COMANDOS
ADICIONAR UM PROCESSO
docker exec [opções] id|nome
processo
PRINCIPAIS COMANDOS
USANDO VOLUMES
docker volume create [opções] [nome]
docker run --volume nome:/path …
docker run --volume "/host:/container"
…
PRINCIPAIS COMANDOS
USANDO PORTAS
docker run --publish
interface:porta-host:porta-
container …
docker run --publish-all …
PRINCIPAIS COMANDOS
TRABALHANDO COM IMAGENS
docker commit [opções] id|container
docker pull imagem
docker push imagem
docker tag [img-original|id] nova-imagem
PRINCIPAIS COMANDOS
TRABALHANDO COM IMAGENS
Dockerfile:
FROM debian:jessie
RUN apt-get update 
apt-get install --no-install-recommends 
--no-install-suggests -y nginx 
&& rm -rf /var/lib/apt/lists/*
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]
EXEMPLOS
HORA DA TELA AZUL
MANEIRAS DE RODAR
DETACHED
docker run --detach debian sleep
infinity
docker run -d debian sleep infinity
MANEIRAS DE RODAR
INTERATIVA COM TERMINAL
docker run --interactive --tty
debian /bin/bash
docker run -i -t debian /bin/bash
MANEIRAS DE RODAR
INTERATIVA (UNIX PIPELINE)
echo "PHPeste" | docker run -i
debian cat
EXEMPLOS
PHP BUILT IN WEB SERVER
docker run -d 
--publish 80:80 
--volume "$(pwd):/app" 
--workdir /app 
php:7-cli 
php -S 0.0.0.0:80
EXEMPLOS
NGINX SERVER
docker run -d 
-p 80:80 
--volume "$(pwd):/usr/share/nginx/
html" 
nginx
EXEMPLOS
COMANDOS "DOCKERIZADOS"
docker run -it 
--volume "$(pwd):/app" 
--volume "$HOME/.ssh:/root/.ssh" 
composer/composer 
install
EXEMPLOS
DOCKER COMPOSE
Demo baseada no repo:
https://github.com/wsilva/demo-
phpsp-ima
EXEMPLOS
APLICAÇÕES GUI
▸ Navegador Tor
▸ Eyes
▸ Spotify
▸ Sugestão: https://hub.docker.com/u/jess/
EXEMPLOS
DOCKER CRAFT
docker run -d 
-p 25565:25565 
-v /var/run/docker.sock:/var/run/
docker.sock 
wfsilva/dockercraft
EXEMPLOS
DOCKER SWARM
docker swarm init
docker swarm join --token
ESTUDO DATADOG
HTTPS://WWW.DATADOGHQ.COM/
DOCKER-ADOPTION/
AUMENTO DE 30% NO USO
ENTRE MAIO DE 2015 E MAIO
DE 2016
ESTUDO DATADOG
EM MAIORES EMPRESAS
(+500 HOSTS) A ADOÇÃO É
MAIOR
ESTUDO DATADOG
2/3 DOS CLIENTES QUE
TESTARAM ADOTARAM
ESTUDO DATADOG
DOS CLIENTES QUE ADOTARAM
A QUANTIDADE DE
CONTAINERS QUINTUPLICOU
ESTUDO DATADOG
EM MÉDIA 5 CONTAINER POR
HOST
ESTUDO DATADOG
VMS SÃO 6 X MAIS LONGEVAS
QUE OS CONTAINERS
ESTUDO DATADOG
IMGS MAIS USADAS:
REGISTRY, NGINX, REDIS,
ELASTICSEARCH, MYSQL, …
ESTUDO DATADOG
TEXT
MAIS SOBRE DOCKER
▸ https://docs.docker.com
▸ https://telegram.me/dockerbr
▸ http://docker-br.herokuapp.com
▸ http://bit.ly/curso-docker
SUA LIGAÇÃO É MUITO
IMPORTANTE PARA NÓS
‣ HTTPS://JOIND.IN/TALK/185C2
‣ HTTPS://JOIND.IN/TALK/933FF
‣ HTTPS://LEGACY.JOIND.IN/19344
‣ HTTPS://LEGACY.JOIND.IN/19347

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Docker volumes
Docker volumesDocker volumes
Docker volumes
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Mundo mágico de Docker
Mundo mágico de DockerMundo mágico de Docker
Mundo mágico de Docker
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
 
TDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhaTDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unha
 
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
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Docker de containers a orquestração
Docker de containers a orquestraçãoDocker de containers a orquestração
Docker de containers a orquestração
 
Estendendo o kubernetes
Estendendo o kubernetesEstendendo o kubernetes
Estendendo o kubernetes
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 Remarks
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
 
TDC2018SP | Trilha Containers - Docker Swarm - Os problemas
TDC2018SP | Trilha Containers - Docker Swarm - Os problemasTDC2018SP | Trilha Containers - Docker Swarm - Os problemas
TDC2018SP | Trilha Containers - Docker Swarm - Os problemas
 

Semelhante a Docker do básico a orquestração (PHPeste2016)

Semelhante a Docker do básico a orquestração (PHPeste2016) (20)

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)
 
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
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 
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)
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
Construindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerConstruindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e Docker
 
Docker Comando básicos
Docker Comando básicosDocker Comando básicos
Docker Comando básicos
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
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
 
Docker 1.12 - Swarm Mode
Docker 1.12 - Swarm ModeDocker 1.12 - Swarm Mode
Docker 1.12 - Swarm Mode
 
Docker compose
Docker composeDocker compose
Docker compose
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Oficina docker
Oficina dockerOficina docker
Oficina docker
 
HOST079 - Docker
HOST079 - DockerHOST079 - Docker
HOST079 - Docker
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 

Mais de Wellington Silva

Mais de Wellington Silva (11)

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)
 
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)
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
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
 

Último

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Docker do básico a orquestração (PHPeste2016)