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

presentation_1.pdf

Avatar for mschonfinkel mschonfinkel
July 07, 2018
35

 presentation_1.pdf

Avatar for mschonfinkel

mschonfinkel

July 07, 2018
Tweet

Transcript

  1. Docker: Básico Marcos 'Tarski' Universidade Federal do Maranhão marcos.schon[email protected] 7

    de Julho de 2018 Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 1 / 27
  2. Quem sou eu Meus contatos: mschonnkel.github.io Eu não sou a

    pessoa mais qualicada pra dar esse curso! Mas alguém tem que falar dessas coisas... Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 2 / 27
  3. Overview I 1 Introdução Setando o ambiente Dockerle 2 Projeto

    1 Nginx 3 Teoria Layer Imagens Registries Containers 4 Projeto 2 Volumes Mais Dockerles Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 3 / 27
  4. Overview II Networks 5 Projeto 3 Multistage Builds 6 O

    que faltou... Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 4 / 27
  5. Setando o ambiente Aqui no tutorial você pode usar uma

    dessas opções: Instalando o Docker na sua máquina via Docker Community Edition. Usar o try-docker (não funciona mais), provavelmente foi substituido por esse site: traning.play-with-docker Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 5 / 27
  6. Docker docker version Version: 18.03.1-ce API version: 1.37 Go version:

    go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:17:20 2018 OS/Arch: linux/amd64 Experimental: false Orchestrator: swarm . . . Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 6 / 27
  7. Docker docker (...) Management Commands: config Manage Docker configs container

    Manage containers image Manage images network Manage networks node Manage Swarm nodes plugin Manage plugins secret Manage Docker secrets service Manage services swarm Manage Swarm system Manage Docker trust Manage trust on Docker images volume Manage volumes (...) Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 7 / 27
  8. Coisas pra falar Mostrar uma imagem com alpine ou ubuntu

    Listar containers Rodar container com -it Docker start Docker stop Docker container prune Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 9 / 27
  9. Seu primeiro Dockerle Projeto 1 Instruções e código fonte estão

    disponíveis neste repo (https://gitlab.com/mschonnkel/DockerTalk): Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 10 / 27
  10. Nosso Hello World! Depois de clonar o repositório (https://gitlab.com/mschonnkel/DockerTalk). cd

    nginx use seu editor de texto favorito para escrever o Dockerle Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 11 / 27
  11. WebServer com Nginx docker build -t webserver-site . docker container

    run --rm -p 8080:80 webserver-site Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 13 / 27
  12. Imagem Uma imagem é um conjunto de Layers, conectados por

    um manifest le. Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 18 / 27
  13. Docker docker image pull docker.io/python:3.6 registry: registry usando, default é

    "docker.io" repo: "python" é o nome do repositório 3.6: chamada de tag, no nosso caso uma das tags é a versão desejada do python, default é "latest". Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 20 / 27
  14. Docker docker image pull docker.io/python:3.6 registry: registry usando, default é

    "docker.io" repo: "python" é o nome do repositório 3.6: chamada de tag, no nosso caso uma das tags é a versão desejada do python, default é "latest". docker image pull docker.io/python:3.6 Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 20 / 27
  15. Docker docker image pull docker.io/python:3.6 registry: registry usando, default é

    "docker.io" repo: "python" é o nome do repositório 3.6: chamada de tag, no nosso caso uma das tags é a versão desejada do python, default é "latest". docker image pull docker.io/python:3.6 é equivalente a docker image pull python:3.6 Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 20 / 27
  16. Docker docker image pull docker.io/python:3.6 registry: registry usando, default é

    "docker.io" repo: "python" é o nome do repositório 3.6: chamada de tag, no nosso caso uma das tags é a versão desejada do python, default é "latest". docker image pull docker.io/python:3.6 é equivalente a docker image pull python:3.6 que é equivalente a docker pull python:3.6 Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 20 / 27
  17. Volumes Containers são, por sua própria natureza, voláteis. Os Volumes

    em Docker são uma forma de persistir dados, mesmo depois que um container é destruido. Dados não cam mais salvos naquela camada de R/W dos containers. Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 23 / 27
  18. Volumes Containers são, por sua própria natureza, voláteis. Os Volumes

    em Docker são uma forma de persistir dados, mesmo depois que um container é destruido. Dados não cam mais salvos naquela camada de R/W dos containers. Instruções Entre no diretório "alpine-vol"e siga as instruções no README.md. Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 23 / 27
  19. Mais Dockerles Vamos agora buildar um Dockerle de um projeto

    escrito em Haskell, como quase ninguém tem um ambiente Haskell setado na máquina é bem mais vantajoso criar um Dockerle para rodar e compilar o projeto. cd lambdama Os comandos usados serão: 1 stack setup 2 stack build 3 stack exec LambdaMA watch A porta usada no projeto: 8000. Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 24 / 27
  20. Networks Criando sua própria rede docker network create --driver nome-do-driver

    nome-da-rede Adicionando containers numa mesma rede docker container run --network nome-da-rede container1 docker container run --network nome-da-rede container2 Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 25 / 27
  21. Multistage Nesta última seção vamos nos aproveitar da versatilidade do

    Docker para criar imagens minúsculas. cd multistage Siga as instruções do README.md Marcos 'Tarski' (UFMA) Docker 7 de Julho de 2018 26 / 27
  22. O que faltou... docker-compose Swarm A API em Flask Marcos

    'Tarski' (UFMA) Docker 7 de Julho de 2018 27 / 27