Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker

Vitor Leal
November 05, 2015

 Docker

Introdução ao Docker

Vitor Leal

November 05, 2015
Tweet

More Decks by Vitor Leal

Other Decks in Technology

Transcript

  1. 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.
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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>
  7. Dockerfile - WORKDIR A instrução WORKDIR define o diretório em

    que os comandos devem ser executados durante o build. WORKDIR /usr/src/app
  8. 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”]
  9. 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>
  10. Dockerfile - ENV As instruções ENV vão definir as variáveis

    de ambiente da imagem. ENV <key> <value> or ENV <key>=<value>
  11. 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”]
  12. 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
  13. 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 ...
  14. 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 .
  15. Docker CLI Para iniciar o nosso container execute o comando:

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

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

    esta rodando utilize o exec. docker exec nomeDoContainer ls -la
  18. 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
  19. 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)