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

Preview:

Citation preview

DO BÁSICO A ORQUESTRAÇÃODOCKER

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

EXEMPLOSHORA 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 DATADOGHTTPS://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