Alagoas Dev Day

985 visualizações

Publicada em

Palestra sobre docker no Alagoas Dev Day de 2015

Publicada em: Tecnologia
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
985
No SlideShare
0
A partir de incorporações
0
Número de incorporações
22
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Alagoas Dev Day

  1. 1. Docker do zero ao deploy Marcio Trindade
  2. 2. Quem sou eu • Marcio Trindade (@marciotrindade); • Formado em Ed. Física; • Trabalho com desenvolvimento desde 2004; • Blog: marciotrindade.com; • Trabalho com Ruby desde 2008;
  3. 3. Antes era assim
  4. 4. Agora está assim WebService nginx + ssl + assets Banco de Dados postgresql + pgv8 + v8 Fila Redis Workers Ruby + sidekiq Web app Ruby + rails API Golang Cache Memcached
  5. 5. Por que Container • Conseguir isolar cada parte da sua aplicação; • Tudo o que cada parte precisa está lá; • Ter o ambiente mais próximo ao de produção; • Simplificar o desenvolvimento; • Simplificar o deploy;
  6. 6. Container x VM
  7. 7. O que é Docker? • Uma plataforma open-source para gerenciar containers; • Escrito pela equipe do Docker, Inc.; • Sob a licença Apache 2.0;
  8. 8. Componentes • Docker client and server • Docker Images • Registries • Docker Containers
  9. 9. Client and server • Já vem com um client (cli); • Conversa com o servidor ou daemon; • Possui uma api RESTfull completa; • Pode estar ou não na mesma maquina;
  10. 10. Docker images • Forma do docker construir containers; • É a criação do ambiente a partir do file system com instruções do tipo:
 Add a file
 Run a comand • Podemos considerar imagens como o código fonte dos containers.
  11. 11. Registries • Um repositório de imagens; • Pode ser público ou privado; • Docker Hub (público); • Possui milhares de imagens prontas;
  12. 12. Containers • Criado a partir de uma imagem; • Contém a sua app ou serviço; • É a camada de execução; • Pode rodar um ou mais processos;
  13. 13. Básico de Docker Live code
  14. 14. Dockerfile • Evite fazer commit • Forma de automatizar • Simples e leve • Rápido (usa cache)
  15. 15. Dockerfile • FROM - A imagem pra utilizar
 FROM ubuntu:14.04 • RUN - Executar comandos necessários pra preparar o sistema
 RUN apt-get install -y package-foo && apt-get install -y package-bar • CMD - Comando que seu container deve rodar
 CMD ["rake", "db:migrate"] • EXPOSE - Expor a porta que o serviço vai escutar
 EXPOSE 80 • ENV - Criar variaveis de ambiente
 ENV RAILS_ENV production • COPY or ADD - Copiar um conteúdo pra dentro do container
 COPY Gemfile /myapp/Gemfile • VOLUME - Expor uma area de de arquivos mutaveis
 VOLUME . /my_app • WORKDIR - Qual o path de trabalho da sua aplicação
 WORKDIR /my_app
  16. 16. Dockerfile Live code
  17. 17. Docker Compose • Antigo "fig"; • Cria e gerencia containers docker; • Define multi-containers em um único arquivo; • Cria link entre os containers; • Sobe suas aplicações com um único comando;
  18. 18. Docker Compose Live code
  19. 19. Referências • The Docker Book - James Turnbull • https://www.docker.com/ • https://docs.docker.com/compose/ • https://www.youtube.com/watch?v=ZzQfxoMFH0U • http://www.rightscale.com/blog/cloud- management-best-practices/docker-vs-vms- combining-both-cloud-portability-nirvana
  20. 20. Duvidas? Marcio Trindade by Locaweb

×