Upload
wellington-silva
View
36
Download
0
Embed Size (px)
Citation preview
AFINAL, O QUE É DOCKER?MEETUP LARAVEL SP #12
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