SlideShare uma empresa Scribd logo
Docker!
Um minicurso pra você e pra mim!
Alessandro Dias
@adbatista
alessandrodbatista@gmail.com
Docker -  minicurso utfpr 2017
Fabio L. Janiszevski
● >15 anos com experiência profissional em Linux;
● Mantenedor do projeto “SmartRouter PROJECT”;
● >8 anos de experiência com servidores de alta
disponibilidade;
● >3 anos de desenvolvimento WEB na empresa
“Ponto Gestor”;
● Professor do ensino superior pela “UTFPR”;
Ponto Gestor
● Empresa com objetivo de fornecer franquia de plataforma;
● Fornece plataforma de sistema para tratamento de pontos;
● Horas trabalhistas, integração com folha de pagamento e
desempenho de colaboradores;
● Nasceu em 2013 a partir da “Crachá Digital”;
● Juntas somam mais de 25 anos em experiência
com relógio ponto;
● Atuação nacional;
Roteiro
● Docker?
● Ambiente;
● Possibilidades;
● Iniciando com o docker;
● Hello world!
● Demonstrações cotidianas com o ruby;
● O que você pode encaixar?
● Onde aprender mais?
O que é o Docker?
Arquitetura
Arquitetura
Imagem Docker: A base para um container docker;
Container Docker: O processo docker que está rodando
efetivamente a imagem, é onde sua aplicação reside;
Engine Docker: Cria, entrega, e executa containers,
“deploiaveis” em uma máquina fisica ou virtual, em um data
center ou um serviço em nuvem;
Registry Docker: “Github” docker(dockerhub), onde armazenar
e compartilhar imagens docker;
Comunidade e empresa (Dados do ano passado - 2016)
Comunidade:
● 2B+ de downloads de imagens;
● 2000+ contribuidores;
● 40K+ estrelas no github;
● 200K+ apps dockerizadas;
● 240 meetups em 70 países;
● 95K membros de meetup;
Docker Inc.:
● Container como serviço;
● Plataforma de integração;
● Suporte técnico comercial;
● Principal patocinador do
projeto docker;
● Suporta mantenedores do
projeto;
Ecossitema
Quem usa docker?
Porque utilizar o
Docker?
Aplicações mudam…
Desafios aumentam…
Badabim… badabá!
● Pacotes com binários e
suas dependências;
● Softwares isolados uns
dos outros;
● Container como formato
padrão;
● Fácil portabilidade
entre ambientes
GNU/Linux;
● Permite padronização no
processo de
desenvolvimento;
O que contém o “container”?
Exemplo! ● docker pull redis
● docker run --rm --network="host" 
-p 6379:6379 redis
Pensem: Necessito de um storage em
memória, mas somente para testar
São muitos
argumentos!
Dockerfile!
docker build -t .
FROM redis:alpine
MAINTAINER TSI version: 0.1
EXPOSE 6379
CMD ["redis-server"]
Comandos básicos
● docker pull <nome da imagem>; Baixa a imagem;
● docker images; Lista as imagens;
● docker inspect <id da imagem ou container>;
● docker run <nome da imagem>; Inicia um container;
● docker ps; Lista containers em execução;
● docker ps -a; Lista todos os containers;
● docker exec <nome do container> <cmd>; Executa um comando
no container;
It’s show time!
Abram vossos
terminais!
Passos iniciais
● ~$ docker pull ruby
● ~$ docker images
● ~$ docker inspect ruby (Verificar o “CMD”)
Parametros para execução(docker run)
-d Execução em Background
--name Nomear o container
-m Limitar o uso de memória RAM
-c Balancear o uso da CPU
-p Mapear portas de rede
-v Mapear unidades de disco/diretórios
-i Modo interativo
-t Alocar um pseudo tty
Executando uma
imagem
~$ docker run -it ruby
irb(main):001:0> puts
“Hello World”
irb(main):002:0> exitTransformando a imagem em
container
Definindo recursos
Não perca recursos para o
processo.
Java cof cof...
~$ docker run -it -m 300M
java
CPU é balanceamento!
Valor padrão: 1024
Menor: Menor prioridade
Maior: Maior prioridade
ATENÇÃO! Processos
sempre são
voláteis, não
“lembram”.
Continuando
● O run transforma a imagem em processo de um container;
● Como recuperar?
● ~$ docker run -it ruby
● irb(main):001:0> exit
● ~$ docker ps -a
● ~$ docker run -it ruby
● irb(main):001:0> exit
● ~$ docker ps -a
OMG!!!!
Estado de processos
~$ docker start <nome do container>
~$ docker attach <nome do container>
irb(main):001:0> exit
~$ docker ps -a
~$ docker rm <nome do container que deseja remover>
E depois?
● Caso queira “salvar” o estado do container em uma nova
imagem:
○ docker commit <nome do container> username/ruby:20170927
● Recuperar o estado da mesma:
○ docker run -it --name ruby_20170927 username/ruby:20170927
○ exit
○ docker start ruby_20170927
○ docker attach ruby_20170927
Como faço para executar outra coisa?
~$ docker start <nome do container>
~$ docker exec -it ruby /bin/bash
Outras Ferramentas
● Docker CLI:
● Docker Machine:
● Docker SWARM:
● Docker Compose:
● Rancher:
● Kitematic:
Onde aprender mais?
● https://github.com/gomex/docker-para-desenvolvedores
● http://techfree.com.br/
Muito obrigado!
fabiosammy@gmail.com

Mais conteúdo relacionado

PPTX
Ambiente de desenvolvimento com docker e ruby on rails
PPTX
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
PDF
Oficina docker
PDF
PPTX
Docker - Básico
PDF
Apresentação Docker
PDF
São paulo docker meetup #2
Ambiente de desenvolvimento com docker e ruby on rails
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Oficina docker
Docker - Básico
Apresentação Docker
São paulo docker meetup #2

Mais procurados (20)

PDF
Docker: uma visão geral
ODP
Docker: uma visão geral e exemplos de uso
ODP
O que é Docker?
PDF
Apresentacao docker
PDF
O que é docker?
PPTX
Introdução a Containers Docker
PDF
Introdução à plataforma Docker
PDF
Apresentação docker
PPTX
Introdução ao docker
PDF
Docker, facilitando a vida do desenvolvimento
PDF
Treinamento Docker Básico
PDF
Olá docker
PDF
Freedomday2016 - Fique na caixinha, docker
PDF
Bem vindo ao Docker
PDF
Verdades que não querem te contar sobre Docker
PPTX
Orquestrando ambientes com docker e kubernetes
PDF
Desenvolvendo com PHP e Docker
PDF
O poder do Docker (7 Masters)
PDF
GIT Básico
PDF
DevOps e redes -- SDN NFV e Docker
Docker: uma visão geral
Docker: uma visão geral e exemplos de uso
O que é Docker?
Apresentacao docker
O que é docker?
Introdução a Containers Docker
Introdução à plataforma Docker
Apresentação docker
Introdução ao docker
Docker, facilitando a vida do desenvolvimento
Treinamento Docker Básico
Olá docker
Freedomday2016 - Fique na caixinha, docker
Bem vindo ao Docker
Verdades que não querem te contar sobre Docker
Orquestrando ambientes com docker e kubernetes
Desenvolvendo com PHP e Docker
O poder do Docker (7 Masters)
GIT Básico
DevOps e redes -- SDN NFV e Docker
Anúncio

Semelhante a Docker - minicurso utfpr 2017 (20)

PDF
TDC 2016 Floripa - Workshop docker
PPTX
Docker e suas tecnologias
PPTX
Docker e suas tecnologias por @cesarnog
PPTX
PDF
Introdução ao docker
PDF
apresentação e introdução aos comandos básicos docker
PDF
Re pensando-virtualização-através-linux containers
PDF
Docker.io:
PDF
Aulão de docker
PPTX
Conheça o Docker
PDF
Docker para testers - Um passeio fora da caixa
PPTX
Docker selenium
PDF
JavaDay2018 - Docker - Além do HelloWorld
PDF
O que é o Docker afinal? (Workshop Novatec)
PDF
Orquestrando Docker Containers: Machine, Swarm e Compose
PDF
Introdução ao Docker
PDF
Iniciando com docker
PDF
Docker - Tutorial for beginners
PDF
Container revolucao
TDC 2016 Floripa - Workshop docker
Docker e suas tecnologias
Docker e suas tecnologias por @cesarnog
Introdução ao docker
apresentação e introdução aos comandos básicos docker
Re pensando-virtualização-através-linux containers
Docker.io:
Aulão de docker
Conheça o Docker
Docker para testers - Um passeio fora da caixa
Docker selenium
JavaDay2018 - Docker - Além do HelloWorld
O que é o Docker afinal? (Workshop Novatec)
Orquestrando Docker Containers: Machine, Swarm e Compose
Introdução ao Docker
Iniciando com docker
Docker - Tutorial for beginners
Container revolucao
Anúncio

Último (7)

DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PPTX
Curso de Windows 11 resumido na prática.pptx
PDF
apresentacao introducao computacao ead.pdf
PDF
Dos requisitos ao código: como criar código rastreável em PHP
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PDF
Evolução em código: algoritmos genéticos com PHP
PPTX
Mapeamento de Objeto para Tabela Relacional
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Curso de Windows 11 resumido na prática.pptx
apresentacao introducao computacao ead.pdf
Dos requisitos ao código: como criar código rastreável em PHP
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Evolução em código: algoritmos genéticos com PHP
Mapeamento de Objeto para Tabela Relacional

Docker - minicurso utfpr 2017

  • 1. Docker! Um minicurso pra você e pra mim!
  • 4. Fabio L. Janiszevski ● >15 anos com experiência profissional em Linux; ● Mantenedor do projeto “SmartRouter PROJECT”; ● >8 anos de experiência com servidores de alta disponibilidade; ● >3 anos de desenvolvimento WEB na empresa “Ponto Gestor”; ● Professor do ensino superior pela “UTFPR”;
  • 5. Ponto Gestor ● Empresa com objetivo de fornecer franquia de plataforma; ● Fornece plataforma de sistema para tratamento de pontos; ● Horas trabalhistas, integração com folha de pagamento e desempenho de colaboradores; ● Nasceu em 2013 a partir da “Crachá Digital”; ● Juntas somam mais de 25 anos em experiência com relógio ponto; ● Atuação nacional;
  • 6. Roteiro ● Docker? ● Ambiente; ● Possibilidades; ● Iniciando com o docker; ● Hello world! ● Demonstrações cotidianas com o ruby; ● O que você pode encaixar? ● Onde aprender mais?
  • 7. O que é o Docker?
  • 9. Arquitetura Imagem Docker: A base para um container docker; Container Docker: O processo docker que está rodando efetivamente a imagem, é onde sua aplicação reside; Engine Docker: Cria, entrega, e executa containers, “deploiaveis” em uma máquina fisica ou virtual, em um data center ou um serviço em nuvem; Registry Docker: “Github” docker(dockerhub), onde armazenar e compartilhar imagens docker;
  • 10. Comunidade e empresa (Dados do ano passado - 2016) Comunidade: ● 2B+ de downloads de imagens; ● 2000+ contribuidores; ● 40K+ estrelas no github; ● 200K+ apps dockerizadas; ● 240 meetups em 70 países; ● 95K membros de meetup; Docker Inc.: ● Container como serviço; ● Plataforma de integração; ● Suporte técnico comercial; ● Principal patocinador do projeto docker; ● Suporta mantenedores do projeto;
  • 16. Badabim… badabá! ● Pacotes com binários e suas dependências; ● Softwares isolados uns dos outros; ● Container como formato padrão; ● Fácil portabilidade entre ambientes GNU/Linux; ● Permite padronização no processo de desenvolvimento; O que contém o “container”?
  • 17. Exemplo! ● docker pull redis ● docker run --rm --network="host" -p 6379:6379 redis Pensem: Necessito de um storage em memória, mas somente para testar
  • 18. São muitos argumentos! Dockerfile! docker build -t . FROM redis:alpine MAINTAINER TSI version: 0.1 EXPOSE 6379 CMD ["redis-server"]
  • 19. Comandos básicos ● docker pull <nome da imagem>; Baixa a imagem; ● docker images; Lista as imagens; ● docker inspect <id da imagem ou container>; ● docker run <nome da imagem>; Inicia um container; ● docker ps; Lista containers em execução; ● docker ps -a; Lista todos os containers; ● docker exec <nome do container> <cmd>; Executa um comando no container;
  • 20. It’s show time! Abram vossos terminais!
  • 21. Passos iniciais ● ~$ docker pull ruby ● ~$ docker images ● ~$ docker inspect ruby (Verificar o “CMD”)
  • 22. Parametros para execução(docker run) -d Execução em Background --name Nomear o container -m Limitar o uso de memória RAM -c Balancear o uso da CPU -p Mapear portas de rede -v Mapear unidades de disco/diretórios -i Modo interativo -t Alocar um pseudo tty
  • 23. Executando uma imagem ~$ docker run -it ruby irb(main):001:0> puts “Hello World” irb(main):002:0> exitTransformando a imagem em container
  • 24. Definindo recursos Não perca recursos para o processo. Java cof cof... ~$ docker run -it -m 300M java
  • 25. CPU é balanceamento! Valor padrão: 1024 Menor: Menor prioridade Maior: Maior prioridade
  • 27. Continuando ● O run transforma a imagem em processo de um container; ● Como recuperar? ● ~$ docker run -it ruby ● irb(main):001:0> exit ● ~$ docker ps -a ● ~$ docker run -it ruby ● irb(main):001:0> exit ● ~$ docker ps -a OMG!!!!
  • 28. Estado de processos ~$ docker start <nome do container> ~$ docker attach <nome do container> irb(main):001:0> exit ~$ docker ps -a ~$ docker rm <nome do container que deseja remover>
  • 29. E depois? ● Caso queira “salvar” o estado do container em uma nova imagem: ○ docker commit <nome do container> username/ruby:20170927 ● Recuperar o estado da mesma: ○ docker run -it --name ruby_20170927 username/ruby:20170927 ○ exit ○ docker start ruby_20170927 ○ docker attach ruby_20170927
  • 30. Como faço para executar outra coisa? ~$ docker start <nome do container> ~$ docker exec -it ruby /bin/bash
  • 31. Outras Ferramentas ● Docker CLI: ● Docker Machine: ● Docker SWARM: ● Docker Compose: ● Rancher: ● Kitematic:
  • 32. Onde aprender mais? ● https://github.com/gomex/docker-para-desenvolvedores ● http://techfree.com.br/