Docker

E133221d7fbc0dee159dca127d2f6f00?s=47 Vitor Leal
November 05, 2015

 Docker

Introdução ao Docker

E133221d7fbc0dee159dca127d2f6f00?s=128

Vitor Leal

November 05, 2015
Tweet

Transcript

  1. Vitor Leal https://vitorleal.com - @vitorleal 10/2015

  2. O que é Docker? Docker é uma plataforma para desenvolvedores

    e sysadmins que permite executar suas aplicações de forma segura e isolada em um container. Esse isolamento permitem que você execute diversos containers simultaneamente em seu host sem interferências entre eles. O Docker faz isso através da combinação de uma plataforma de virtualização de containers leve e ferramentas que ajudam a gerenciar e fazer o deploy das suas aplicações.
  3. Como funciona?

  4. Como funciona? • Você cria uma imagem Docker que contém

    sua aplicação • Você criar containers que utilizam sua imagem como base • Você pode compartilhar suas imagens pelo Docker Hub
  5. Como funciona?

  6. Docker Hub

  7. Docker Hub O Docker Hub é um serviço para criação

    e hospedagem de imagens Docker. Ele fornece um recurso centralizado para a descoberta, distribuição e gerenciamento de versão de containers privados e públicos. Features: • Encontrar e gerenciar imagens Docker • Builds automatizados ligado aos commits no GitHub ◦ Webhooks para executar ações após o build com sucesso • Criar organizações para gerenciar imagens privadas
  8. Docker Hub

  9. Dockerfile

  10. Dockerfile Docker pode construir imagens automaticamente pela leitura das instruções

    presentes no arquivo Dockerfile que deve estar na raiz da sua aplicação. ├── Dockerfile ├── app │ └── server.js └── readme.md
  11. Dockerfile FROM node:4.1 MAINTAINER Ingresse WORKDIR /usr/src/app RUN echo “Just

    an echo” RUN echo “Another echo” COPY . /usr/src/app ENV MY_NAME=Vitor CMD node server.js EXPOSE 5000 80
  12. Dockerfile - FROM A primeira instrução do arquivo Dockerfile tem

    que ser o FROM, para indicar qual imagem base vai ser utilizada. FROM <image>:<tag> or FROM <image>
  13. Dockerfile - MAINTAINER A instrução MAINTAINER é utilizado para identificar

    o autor da imagem gerada. MAINTAINER Ingresse
  14. Dockerfile - WORKDIR A instrução WORKDIR define o diretório em

    que os comandos devem ser executados durante o build. WORKDIR /usr/src/app
  15. Dockerfile - RUN As instruções RUN contém os comandos que

    devem ser executados durante o build da imagem. RUN source myScript.sh or RUN [“source”, “myScript.sh”]
  16. Dockerfile - COPY A instrução COPY vai copiar arquivos/pastas do

    diretório indicado para o local de destino dentro do container. COPY <src> <dest>
  17. Dockerfile - ENV As instruções ENV vão definir as variáveis

    de ambiente da imagem. ENV <key> <value> or ENV <key>=<value>
  18. Dockerfile - CMD A instrução CMD contém o comando que

    vai iniciar a aplicação. Só pode conter uma instrução CMD no Dockerfile. Se houver mais de uma, somente a última será considerada. CMD node server.js or CMD [“node”, “server.sh”]
  19. Dockerfile - EXPOSE A instrução EXPOSE configura o container para

    responder pela(s) porta(s) indicada(s). EXPOSE <local port> <dest port> ou EXPOSE 5000 80
  20. Docker CLI

  21. Docker CLI brew install docker sudo apt-get install docker-engine Mac

    Linux
  22. Docker CLI Usage: docker [OPTIONS] COMMAND [arg...] docker [ --help

    | -v | --version ]
  23. Docker CLI Commands: build Build an image from a Dockerfile

    images List images kill Kill a running container login Register or log in to a Docker registry logs Fetch the logs of a container pull Pull an image or a repository from a registry push Push an image or a repository to a registry ps List containers restart Restart a running container rm Remove one or more containers rmi Remove one or more images run Run a command in a new container search Search the Docker Hub for images start Start one or more stopped containers stop Stop a running container by sending SIGTERM and SIGKILL ...
  24. Docker CLI Para criar uma imagem baseada nas instruções do

    nosso arquivo Dockerfile utilizamos o comando docker build. docker build -t <tag da imagem> <local dockerfile> ou docker build -t nomeDaImagem .
  25. Docker CLI Para iniciar o nosso container execute o comando:

    docker run nomeDaImagem ou docker run --name nomeDoContainer nodeDaImagem
  26. Docker CLI Para linkar outro conteiner ao nosso, utilize a

    opção --link. docker run --link redis --name nomeDoContainer nodeDaImagem
  27. Docker CLI Para executar algum comando dentro do container que

    esta rodando utilize o exec. docker exec nomeDoContainer ls -la
  28. Docker Machine

  29. Docker Machine Docker-Machine permite criar Docker host em seu computador.

    Ele cria automaticamente o host, instala o Docker neles e em seguida, configura o cliente para se comunicar com eles. docker-machine create --driver=virtualbox local docker-machine ls
  30. Docker Machine Para setar as variáveis de ambiente da maquina

    Docker utilize o comando: docker-machine env local ou eval "$(docker-machine env local)
  31. Docker Machine Para descobrir o IP da máquina Docker utilize

    o comando: docker-machine ip local
  32. Referências: https://docker.com https://docs.docker.com https://hub.docker.com https://docs.docker.com/compose https://docs.docker.com/userguide/dockerlinks https://github.com/wsargent/docker-cheat-sheet

  33. done();