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

Docker

Avatar for Vitor Leal Vitor Leal
November 05, 2015

 Docker

Introdução ao Docker

Avatar for Vitor Leal

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)