Introdução ao Docker

Hello World

Kleber Nascimento Gueriero


Developer at Codeminer 42

@kleberng

Então vamos falar de Docker..

  • Equipe usando o mesmo ambiente com as mesmas versões de software, configurações e etc.
  • Isolamento em containers
  • Proximidade do ambiente de produção
  • Fácil replicação através de imagens

Containers

  • Isolamento de ambiente
  • Não virtualiza SO do zero
  • Usa o Kernel do SO hospedeiro(bom para o desempenho =D )
  • Servidor do App, DB, etc separados em containers
  • Rodando um processo por container à partir de uma imagem

Imagens

  • Ambientes salvos prontos para o uso, seja:
    • Plataforma do App(Ex.: ruby + rails + client do DB)
    • DB(Ex.: Postgresql)
  • Facilitam a replicação do ambiente
  • Existe um hub.docker.com com imagens prontas!

Imagens

Existem várias prontas!

 

$ docker pull postgres

$ docker run --name postgres_container -e POSTGRES_PASSWORD=mysecretpassword -d postgres

$ docker run --link postgres_container:postgres -d web_application_image

Imagens

Apenas baixar e rodar!

E claro, se for algo que se conecte à aplicacão principal, linkar!

Imagens

Ou também..pode criar você mesmo

Imagens

Usando uma "receita" - Dockerfile

# Arquivo /home/johndoe/Dockerfile
# Imagem usada como base
FROM ubuntu:14.04
MAINTAINER John Doe <john@example.com>
# RUN é usado para rodar comandos no container que irá gerar a imagem
RUN apt-get update && apt-get install -y ruby ruby-dev
RUN gem install sinatra
$ docker build -t johndoe/my_image

E rodando o comando para gerar a imagem

Obs.: o comando seria rodado onde está o Dockerfile

Imagens

Subindo um container

# -t -i serve para manter o container ativo e interativo no seu terminal
$ docker run -t -i ubuntu
$ apt-get update && apt-get install -y ruby ruby-dev
$ gem install sinatra

Rodando os comandos nele

E salvando suas alterações em uma imagem

$ docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED           ...
d9581cfdee9d   ubuntu:latest  "/bin/bash"   2 minutes ago     ...

$ docker commit d9581cfdee9d johndoe/my_image

Ou.........

Simplesmente porque eu gosto de chopp! =D

Intro

By Kleber Nascimento Gueriero