afinal, o que é docker? (meetup laravel #12)

71
AFINAL, O QUE É DOCKER? MEETUP LARAVEL SP #12

Upload: wellington-silva

Post on 15-Feb-2017

36 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Afinal, o que é Docker? (Meetup Laravel #12)

AFINAL, O QUE É DOCKER?MEETUP LARAVEL SP #12

Page 2: Afinal, o que é Docker? (Meetup Laravel #12)

WHO AM I?

WELLINGTON F. SILVA

▸ AKA: wsilva | boina | tom | fisi

▸ Pai

▸ Técnico Telecom

▸ Programador

▸ Instrutor

▸ DevOps

▸ Escritor

Page 3: Afinal, o que é Docker? (Meetup Laravel #12)

AGENDA

▸ Virtualização

▸ Virtual Machine x Contêineres

▸ Histórico

▸ Container from scratch

▸ Evolução

▸ Arquitetura

▸ OSX x Windows x Linux

▸ Imagens

▸ Adoção do Docker

Page 4: Afinal, o que é Docker? (Meetup Laravel #12)

O QUE É DOCKER?

Page 5: Afinal, o que é Docker? (Meetup Laravel #12)
Page 6: Afinal, o que é Docker? (Meetup Laravel #12)
Page 7: Afinal, o que é Docker? (Meetup Laravel #12)

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

by wsilva

O QUE É O DOCKER?

Page 8: Afinal, o que é Docker? (Meetup Laravel #12)

TIPOS DE VIRTUALIZAÇÃO

Page 9: Afinal, o que é Docker? (Meetup Laravel #12)

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

Page 10: Afinal, o que é Docker? (Meetup Laravel #12)

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

Page 11: Afinal, o que é Docker? (Meetup Laravel #12)

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

Page 12: Afinal, o que é Docker? (Meetup Laravel #12)

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

▸ OS Level Virtualization

Page 13: Afinal, o que é Docker? (Meetup Laravel #12)

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

▸ OS Level Virtualization <= DOCKER

Page 14: Afinal, o que é Docker? (Meetup Laravel #12)
Page 15: Afinal, o que é Docker? (Meetup Laravel #12)

VMS X CONTÊINERES

Page 16: Afinal, o que é Docker? (Meetup Laravel #12)

SERVIDORSERVIDOR

HOST OSHOST OS

CONTAINER ENGINEHYPERVISOR

BINS/LIBSGUEST OS BINS/LIBSGUEST OS

BINS/LIBS BINS/LIBS APP APP

APP APP

VM VM

Container Container

VMs x Contêineres

Page 17: Afinal, o que é Docker? (Meetup Laravel #12)

SERVIDORSERVIDOR

DEBIAN LINUXDEBIAN LINUX

DOCKERVIRTUALBOX

BINS/LIBSCENTOS LINUX BINS/LIBSUBUNTU LINUX

BINS/LIBS BINS/LIBS NGINX MYSQL

NGINX MYSQL

VM VM

Container Container

VMs x Contêineres

Page 18: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

Page 19: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

Page 20: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

Page 21: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

▸ Base para dotCloud

Page 22: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

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 23: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

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 24: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

HISTÓRIA

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

Page 25: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

HISTÓRIA

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

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

Page 26: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

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 27: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

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 28: Afinal, o que é Docker? (Meetup Laravel #12)

HISTÓRICO

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 29: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

Page 30: Afinal, o que é Docker? (Meetup Laravel #12)

PROCESSOS +

KERNEL NAMESPACES +

CGROUPS

Page 31: Afinal, o que é Docker? (Meetup Laravel #12)

PROCESSOS PID=1

Page 32: Afinal, o que é Docker? (Meetup Laravel #12)

KERNEL NAMESPACES (O QUE O PROCESSO PODE VER)

Page 33: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

Page 34: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

Page 35: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

Page 36: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

▸ UTS - Unix timesharing system, recursos do kernel

Page 37: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

▸ UTS - Unix timesharing system, recursos do kernel

▸ USER - usuários

Page 38: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

▸ UTS - Unix timesharing system, recursos do kernel

▸ USER - usuários

▸ MNT - filesystem e pontos de montagem

Page 39: Afinal, o que é Docker? (Meetup Laravel #12)

CGROUPS (O QUE O PROCESSO PODE USAR)

Page 40: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

CGROUPS

▸ CPU

Page 41: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

Page 42: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

Page 43: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

▸ Interface de rede

Page 44: Afinal, o que é Docker? (Meetup Laravel #12)

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

▸ Interface de rede

▸ Hardwares periféricos (pen drive, camera, etc)

Page 45: Afinal, o que é Docker? (Meetup Laravel #12)

DEMO

Page 46: Afinal, o que é Docker? (Meetup Laravel #12)

https://github.com/wsilva/container-from-scratch-demo

Page 47: Afinal, o que é Docker? (Meetup Laravel #12)

EVOLUÇÃO

Page 48: Afinal, o que é Docker? (Meetup Laravel #12)

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

Page 49: Afinal, o que é Docker? (Meetup Laravel #12)

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

▸ Libcontainer

Page 50: Afinal, o que é Docker? (Meetup Laravel #12)

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

▸ Libcontainer

▸ runC

Page 51: Afinal, o que é Docker? (Meetup Laravel #12)

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

▸ Libcontainer

▸ runC

▸ ContainerD

Page 52: Afinal, o que é Docker? (Meetup Laravel #12)

ARQUITETURA

Page 53: Afinal, o que é Docker? (Meetup Laravel #12)

DOCKER HOST

Imagens

DAEMON

Volumes

Containers

KITEMATIC

DOCKER CLIENT

DOCKER PULL DOCKER PUSH DOCKER BUILD DOCKER RUN DOCKER PS

DOCKER IMAGES

DOCKER REGISTRY (HUB)

HTTPCURL WGET

Page 54: Afinal, o que é Docker? (Meetup Laravel #12)

WINDOWS VS OSX VS LINUX

Page 55: Afinal, o que é Docker? (Meetup Laravel #12)

CONTÊINERES LINUX

LINUX (DOCKER HOST)WINDOWSOSX

VM LINUX (DOCKER HOST)

DOCKER CLIENTDOCKER CLIENT

VM LINUX (DOCKER HOST)

DOCKER CLIENT

DOCKER DAEMONDOCKER DAEMONDOCKER DAEMON

Page 56: Afinal, o que é Docker? (Meetup Laravel #12)

CONTÊINERES WINDOWS

WINDOWS (DOCKER HOST) LINUXOSX

VM WINDOWS (DOCKER HOST)

DOCKER CLIENTDOCKER CLIENT DOCKER CLIENT

DOCKER DAEMON DOCKER DAEMONDOCKER DAEMON

VM WINDOWS (DOCKER HOST)

Page 57: Afinal, o que é Docker? (Meetup Laravel #12)

ESTADOS DE UM CONTÊINER

Page 58: Afinal, o que é Docker? (Meetup Laravel #12)

CREATE

STOPPED RUNNING

PAUSED

CREATE

DESTROY

DELETED

START

docker run

docker create

dockerstart

docker rm

RESTART

docker kill

docker stopKILL

DIE

DIE

STOP

DIE

START

RESTART

PAUSE

UNPAUSE

DIE

OOM

docker pause

dockerrestart

docker unpause

exit

killedyesno

Page 59: Afinal, o que é Docker? (Meetup Laravel #12)

IMAGENS

Page 60: Afinal, o que é Docker? (Meetup Laravel #12)
Page 61: Afinal, o que é Docker? (Meetup Laravel #12)
Page 62: Afinal, o que é Docker? (Meetup Laravel #12)
Page 63: Afinal, o que é Docker? (Meetup Laravel #12)
Page 64: Afinal, o que é Docker? (Meetup Laravel #12)

docker history nginx

Page 65: Afinal, o que é Docker? (Meetup Laravel #12)

ADOÇÃO

Page 66: Afinal, o que é Docker? (Meetup Laravel #12)

https://www.datadoghq.com/docker-adoption/

Page 67: Afinal, o que é Docker? (Meetup Laravel #12)

https://www.datadoghq.com/docker-adoption/

Page 68: Afinal, o que é Docker? (Meetup Laravel #12)

https://www.datadoghq.com/docker-adoption/

Page 69: Afinal, o que é Docker? (Meetup Laravel #12)

https://www.datadoghq.com/docker-adoption/

Page 70: Afinal, o que é Docker? (Meetup Laravel #12)

https://www.datadoghq.com/docker-adoption/

Page 71: Afinal, o que é Docker? (Meetup Laravel #12)

TO BE CONTINUED…

MAIS SOBRE DOCKER

▸ https://docs.docker.com

▸ https://telegram.me/dockerbr

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

▸ https://community.docker.com

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