76
DO BÁSICO A ORQUESTRAÇÃO DOCKER

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

Embed Size (px)

Citation preview

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

DO BÁSICO A ORQUESTRAÇÃODOCKER

Page 2: Docker do básico a orquestração (PHPeste2016)
Page 3: Docker do básico a orquestração (PHPeste2016)

TEXT

WELLINGTON F. SILVA

▸ Pai

▸ Técnico Telecom,

▸ Programador,

▸ Devops

▸ Instrutor

▸ Escritor

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

TEXT

AGENDA

▸ O que é Docker

▸ Breve história

▸ Como funciona

▸ Principais comandos

▸ Exemplos

▸ Estudo sobre Docker em Produção

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

O QUE É DOCKER?

Page 6: Docker do básico a orquestração (PHPeste2016)
Page 7: Docker do básico a orquestração (PHPeste2016)
Page 8: Docker do básico a orquestração (PHPeste2016)

FERRAMENTA PARA VIRTUALIZAÇÃO NO NÍVEL DO SISTEMAS OPERACIONAL

Page 9: Docker do básico a orquestração (PHPeste2016)
Page 10: Docker do básico a orquestração (PHPeste2016)

O QUE É DOCKER?

▸ Sistemas de Containers Linux

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

O QUE É DOCKER?

▸ Sistemas de Containers Linux

▸ Leve e rápido

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

O QUE É DOCKER?

▸ Sistemas de Containers Linux

▸ Leve e rápido

▸ Open Source

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

O QUE É DOCKER?

▸ Sistemas de Containers Linux

▸ Leve e rápido

▸ Open Source

▸ Diversas ferramentas de cluster e orquestração

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

O QUE É DOCKER?

▸ Sistemas de Containers Linux

▸ Leve e rápido

▸ Open Source

▸ Diversas ferramentas de cluster e orquestração

▸ Facilita micro serviços

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

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

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

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

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

HISTÓRIA

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

TEXT

HISTÓRIA

▸ 21/03/2013 1ª Demo

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

TEXT

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

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

TEXT

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

▸ Base para dotCloud

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

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

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

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

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

TEXT

HISTÓRIA

▸ 23/07/2014 Compra da Orchard (FIG)

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

TEXT

HISTÓRIA

▸ 23/07/2014 Compra da Orchard (FIG)

▸ 16/09/2014 3º aporte US$ 40 mi

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

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

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

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

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

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

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

COMO FUNCIONA?

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

PROCESSOS +

KERNEL NAMESPACES +

CGROUPS

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

PROCESSOS PID=1

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

KERNEL NAMESPACES (O QUE O PROCESSO PODE VER)

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

CGROUPS (O QUE O PROCESSO PODE USAR)

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

VM X CONTAINERS

Page 34: Docker do básico a orquestração (PHPeste2016)
Page 35: Docker do básico a orquestração (PHPeste2016)

ARQUITETURA

Page 36: Docker do básico a orquestração (PHPeste2016)
Page 37: Docker do básico a orquestração (PHPeste2016)

WINDOWS VS OSX VS LINUX

Page 38: Docker do básico a orquestração (PHPeste2016)
Page 39: Docker do básico a orquestração (PHPeste2016)

Windows 2016

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

IMAGENS

Page 41: Docker do básico a orquestração (PHPeste2016)
Page 42: Docker do básico a orquestração (PHPeste2016)
Page 43: Docker do básico a orquestração (PHPeste2016)
Page 44: Docker do básico a orquestração (PHPeste2016)
Page 45: Docker do básico a orquestração (PHPeste2016)

PRINCIPAIS COMANDOS

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

PRINCIPAIS COMANDOS

CRIAR CONTAINERS

docker run [opções] imagem [comando|parâmetro]

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

PRINCIPAIS COMANDOS

LISTAR CONTAINERS

docker ps [opções]

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

PRINCIPAIS COMANDOS

LISTAR IMAGENS

docker images [opções]

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

PRINCIPAIS COMANDOS

REMOVER CONTAINERS

docker rm [opções] id|nome

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

PRINCIPAIS COMANDOS

REMOVER IMAGENS

docker rmi [opções] id|tag

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

PRINCIPAIS COMANDOS

ADICIONAR UM PROCESSO

docker exec [opções] id|nome processo

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

PRINCIPAIS COMANDOS

USANDO VOLUMES

docker volume create [opções] [nome]

docker run --volume nome:/path …

docker run --volume "/host:/container" …

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

PRINCIPAIS COMANDOS

USANDO PORTAS

docker run --publish interface:porta-host:porta-container …

docker run --publish-all …

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

PRINCIPAIS COMANDOS

TRABALHANDO COM IMAGENS

docker commit [opções] id|container

docker pull imagem

docker push imagem

docker tag [img-original|id] nova-imagem

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

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;"]

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

EXEMPLOSHORA DA TELA AZUL

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

MANEIRAS DE RODAR

DETACHED

docker run --detach debian sleep infinity

docker run -d debian sleep infinity

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

MANEIRAS DE RODAR

INTERATIVA COM TERMINAL

docker run --interactive --tty debian /bin/bash

docker run -i -t debian /bin/bash

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

MANEIRAS DE RODAR

INTERATIVA (UNIX PIPELINE)

echo "PHPeste" | docker run -i debian cat

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

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

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

EXEMPLOS

NGINX SERVER

docker run -d \

-p 80:80 \

--volume "$(pwd):/usr/share/nginx/html" \

nginx

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

EXEMPLOS

COMANDOS "DOCKERIZADOS"

docker run -it \

--volume "$(pwd):/app" \

--volume "$HOME/.ssh:/root/.ssh" \

composer/composer \

install

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

EXEMPLOS

DOCKER COMPOSE

Demo baseada no repo:

https://github.com/wsilva/demo-phpsp-ima

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

EXEMPLOS

APLICAÇÕES GUI

▸ Navegador Tor

▸ Eyes

▸ Spotify

▸ Sugestão: https://hub.docker.com/u/jess/

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

EXEMPLOS

DOCKER CRAFT

docker run -d \

-p 25565:25565 \

-v /var/run/docker.sock:/var/run/docker.sock \

wfsilva/dockercraft

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

EXEMPLOS

DOCKER SWARM

docker swarm init

docker swarm join --token

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

ESTUDO DATADOGHTTPS://WWW.DATADOGHQ.COM/DOCKER-ADOPTION/

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

AUMENTO DE 30% NO USO ENTRE MAIO DE 2015 E MAIO DE 2016

ESTUDO DATADOG

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

EM MAIORES EMPRESAS (+500 HOSTS) A ADOÇÃO É MAIOR

ESTUDO DATADOG

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

2/3 DOS CLIENTES QUE TESTARAM ADOTARAM

ESTUDO DATADOG

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

DOS CLIENTES QUE ADOTARAM A QUANTIDADE DE CONTAINERS QUINTUPLICOU

ESTUDO DATADOG

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

EM MÉDIA 5 CONTAINER POR HOST

ESTUDO DATADOG

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

VMS SÃO 6 X MAIS LONGEVAS QUE OS CONTAINERS

ESTUDO DATADOG

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

IMGS MAIS USADAS: REGISTRY, NGINX, REDIS, ELASTICSEARCH, MYSQL, …

ESTUDO DATADOG

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

TEXT

MAIS SOBRE DOCKER

▸ https://docs.docker.com

▸ https://telegram.me/dockerbr

▸ http://docker-br.herokuapp.com

▸ http://bit.ly/curso-docker

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

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