22
Introdução a Containers com Docker Matheus Fidelis @fidelissauro #GDGCabreuva

Introdução a Containers Docker

Embed Size (px)

Citation preview

Page 1: Introdução a Containers Docker

Introdução a

Containers com

Docker

Matheus Fidelis

@fidelissauro

#GDGCabreuva

Page 2: Introdução a Containers Docker

$ whoami

Matheus Scarpato Fidelis

Desenvolvedor Web PHP - Industria Fox

Blogger - Nanoshots Open Source Security

[email protected]

[email protected]

Site: http://www.nanoshots.com.br/

Twitter: @fidelissauro

Page 3: Introdução a Containers Docker

Choose your Destiny

Page 4: Introdução a Containers Docker

O que é o Docker?

Ferramenta Open Source

Gerenciador de Containers LXC

(Linux Containers)

Criado pela StartUp dotCloud

Disponibilizado para a

comunidade com o nome de

Docker em em 2013 como uma

engine de Deploy

"Em qualquer computador, em qualquer infra, em qualquer núvem..."

Page 5: Introdução a Containers Docker

O que é o Docker?

Basicamente é um empacotador de ambientes

Funciona independente do Hardware

Não depende de Frameworks ou linguagens específicas

Facilidade de Deploy

Escalabilidade de aplicações Web, Bancos de Dados e

demais serviços de Backend

Funciona de forma isolada da máquina Host

Permite multiplas instâncias utilizando o mesmo

Kernel

Page 6: Introdução a Containers Docker

$ docker --help

LEVE

EFICIENTE

OPEN SOURCE

SEGURA

ESCALÁVEL

MULTI SERVIÇOS

KERNEL LINUX

FEITO PARA A NÚVEM

Arquitetura

Page 7: Introdução a Containers Docker

VM vs Docker Container

Virtual Machine Container

Page 8: Introdução a Containers Docker

Descobrindo o mundo dos Containers

Pequenos sistemas Linux minimalistas

Compartilhado Kernel do Host

Processos trabalhando isoladamente

Commits e versionamento de containers

Compartilhamento de ambientes customizados

“Mas na minha máquina funciona...”

Page 9: Introdução a Containers Docker

??????????????????????????????

Page 10: Introdução a Containers Docker

HANDS ON!!

Instalando o Docker em ambientes CentOS 7 / Debian 7/8

root@fidelis:~# curl -sSL https://get.docker.com | sh

Iniciando o Serviço

root@fidelis:~# /etc/init.d/docker start

root@fidelis:~# ps aux | grep docker

root@fidelis:~# docker images

Page 11: Introdução a Containers Docker

CRIANDO UM CONTAINER

Criando/Baixando um Container

root@fidelis:~# docker run -it imagem processo

root@fidelis:~# docker run -it debian /bin/bash

DockerHub: https://hub.docker.com/

Page 12: Introdução a Containers Docker

CRIANDO UM CONTAINER

Sair do Container (Matar)

Saindo do Container (Manter Vivo)

root@fidelis:~# “ctrl +d”

root@fidelis:~# “ctrl + pq”

Acessando o Container ativo (Attach)

root@fidelis:~# docker attach CONTEINER ID

# docker ps

Page 13: Introdução a Containers Docker

HANDS ON!!

Verificando containers em execução

root@fidelis:~# docker ps

Verificando imagens disponíveis

root@fidelis:~# docker images

Page 14: Introdução a Containers Docker

HANDS ON!!

Executando comandos remotamete no Container

root@fidelis:~# docker exec CONTEINERID comando

root@fidelis:~# docker exec 7263182 apt-get update

Verificando diferenças e modificações no Container

root@fidelis:~# docker diff CONTEINER ID

Page 15: Introdução a Containers Docker

HANDS ON!!

Commit na Imagem

root@fidelis:~# docker commit CONTEINERID user/suaversão:1.0

Parando a Imagem e Execução

root@fidelis:~# docker stop CONTEINERID

Deletando a Imagem

root@fidelis:~# docker rm CONTEINERID

Page 16: Introdução a Containers Docker

??????????????????????????????

Page 17: Introdução a Containers Docker

CRIANDO UM CONTAINER

apache

Iniciando um Container com o Apache

root@fidelis:~# docker run -it matheus/apache /bin/bash

root@7c2a5bc5cabf:/# update && apt-get install apache2 php5

No container… Instale o Apache e o PHP

root@7c2a5bc5cabf:/# /etc/init.d/apache2 start

Page 18: Introdução a Containers Docker

CRIANDO UM CONTAINER

apache

root@7c2a5bc5cabf:/# ip addr

Page 19: Introdução a Containers Docker

CRIANDO UM CONTAINER

apache

root@fidelis:~# docker commit CONTEINERID matheus/apache:1.0

root@fidelis:~# docker run -p 8080:80 -t matheus/apache1:0

/bin/bash

root@fidelis:~# docker exec CONTEINERID /etc/init.d/apache2 start

Page 20: Introdução a Containers Docker

Referências sobre Docker:

Canal LinuxTips: https://www.youtube.com/user/linuxtipscanal

Canal Rafael Gomes: https://www.youtube.com/user/rafaelmontek/videos

PHPSP: http://phpsp.org.br/tag/docker/

Livro: Primeiros Passos com Docker - Karl Matthias, Sean P. Kane 2015

Livro: Aprendendo Docker - Wellington Figueira da Silva 2016

Page 21: Introdução a Containers Docker

CUPOM DOS BROTHER!!!

“NANOSHOTS”

Tudo maiúsculo, e sem as aspas :D

20% DE

DESCONTO

EM

QUALQUER

COMPRA DA

EDITORA

NOVATEC!!!

CÓDIGO PROMOCIONAL:

http://www.novatec.com.br/

Valido até o fim de 2016, eu acho…

Page 22: Introdução a Containers Docker

Obrigado!!

Perguntas??

Twitter: @fidelissauroEmail: [email protected]: www.nanoshots.com.br