afinal, o que é docker? (webinar umbler)

71
AFINAL, O QUE É DOCKER? WEBINAR

Upload: wellington-silva

Post on 15-Feb-2017

35 views

Category:

Technology


0 download

TRANSCRIPT

AFINAL, O QUE É DOCKER?WEBINAR

WHO AM I?

WELLINGTON F. SILVA

▸ AKA: wsilva | boina | tom | fisi

▸ Pai

▸ Técnico Telecom

▸ Programador

▸ Instrutor

▸ DevOps

▸ Escritor

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

O QUE É DOCKER?

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

by wsilva

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

▸ OS Level Virtualization

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

▸ OS Level Virtualization <= DOCKER

VMS X CONTÊINERES

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

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

HISTÓRICO

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

▸ Base para dotCloud

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

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

HISTÓRICO

HISTÓRIA

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

HISTÓRICO

HISTÓRIA

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

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

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

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

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

COMO FUNCIONA?

PROCESSOS +

KERNEL NAMESPACES +

CGROUPS

PROCESSOS PID=1

KERNEL NAMESPACES (O QUE O PROCESSO PODE VER)

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

▸ UTS - Unix timesharing system, recursos do kernel

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

▸ UTS - Unix timesharing system, recursos do kernel

▸ USER - usuários

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

CGROUPS (O QUE O PROCESSO PODE USAR)

COMO FUNCIONA?

CGROUPS

▸ CPU

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

▸ Interface de rede

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

▸ Interface de rede

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

DEMO

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

EVOLUÇÃO

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

▸ Libcontainer

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

▸ Libcontainer

▸ runC

EVOLUÇÃO

EVOLUÇÃO

▸ Libvirt / LXC

▸ Libcontainer

▸ runC

▸ ContainerD

ARQUITETURA

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

WINDOWS VS OSX VS LINUX

CONTÊINERES LINUX

LINUX (DOCKER HOST)WINDOWSOSX

VM LINUX (DOCKER HOST)

DOCKER CLIENTDOCKER CLIENT

VM LINUX (DOCKER HOST)

DOCKER CLIENT

DOCKER DAEMONDOCKER DAEMONDOCKER DAEMON

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)

ESTADOS DE UM CONTÊINER

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

IMAGENS

docker history nginx

ADOÇÃO

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

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

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

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

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

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