Docker

Jonhnatha Trigueiro

Sobre mim

$ docker run joepreludian/hello

 

Jonhnatha Trigueiro

Engenheiro de Software

Nexus EDGE

 

@jjrt42

fb.com/joepreludian

Camo faremos?

  • Introdução;
  • Para desenvolvedor;
  • Para ambiente de produção;

História

Virtualização

Virtualização

  • Total;
  • Paravirtualização;
  • VMware;
  • VirtualBox;
  • KVM;

LibVirt
LXC
LibContainer

Docker

  • Virtualização à nível de S.O.
  • Mesmo Kernel, múltiplas distros;
  • Partida quente;
  • Mais rápido;
  • Controle granular de recursos;
    • CPU;
    • Memória;
    • Dispositivos;
    • Pontos de montagem;
    • Rede.

Container

Container

  • Descarga de algodão lenta;
  • Criado para resolver problema de transporte;
  • Tamanho padronizado;
  • Funcionava nos caminhões, trens e navios!

Container

  • Configurar VPS ou Hosting compartilhado;
  • Criado pra ser uma alternativa barata à virtualização;
  • Formato Padronizado (Imagens, DockerFiles, Entrypoint)
  • Funciona na sua máquina e no servidor em produção;

Container

  • Imagens de disco versionáveis;
  • Rede Inteligente;
  • Comunicação InterContainers;
  • Docker Registry.

Para Desenvolvedores

Características

  • Ponte rápida para desenvolvimento;
  • Vagrant Like, só que muito mais bacana;
  • Docker Volumes: monta sua pasta local: executa no docker;

LAMP

$ docker run --name dev_mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest

$ docker run --link dev_mysql:my_mysql -v $(pwd):/var/www/html -p 8002:80 -d php:5.6-apache;

Latex

$ docker run --rm -it -v $(pwd):/var/texlive harshjv/texlive-2015 pdflatex joey_teste.tex
FROM harshjv/texlive-2015:latest

MAINTAINER Jonhnatha Trigueiro <joepreludian@gmail.com>

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install pandoc* -y

RUN apt-get clean && \
    rm -rf /var/lib/apt/lists/* \
           /tmp/* \
           /var/tmp/*

ENV PATH /opt/texbin:$PATH
VOLUME /var/texlive

WORKDIR /var/texlive

Docker HUB

Docker HUB

  • Repositório Público Grátis;
  • Repositórios Privados;
  • Ponto de partida para se pegar imagens;
  • https://hub.docker.com;
  • Faça seu próprio Docker HUB;

Docker

Em produção

Um novo paradigma

  • Escalonamento Horizontal;
  • Clusters;
  • Seu server vira um agregador de containers;
  • Basta rodar a imagem que:
    • Você criou à partir de um Dockerfile;
    • Você baixou de um DockerHub privado ou,
    • Que você baixou do SEU próprio "Docker Hub".

Algumas Ferramentas

Docker UI

Docker Swarm

Apache Mesos

Google Kubernetes

Ou a sua!

Ele usa uma API REST por trás ;)

Obrigado!
(dúvidas?)

@jjrt42
fb.com/joepreludian
github.com/joepreludian