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
Intro
- 971