Começando com o Docker

Que bicho é esse?

O Docker é uma plataforma aberta para desenvolvedores e administradores de sistemas, usada para construir, executar e distribuir “máquinas virtuais”.

Numa máquina virtual nós temos um conjunto de sistema operacional, drives, libs, host, serviços, programa de virtualização(vmware, virtualbox), blah, blah, blah, o que no final gera uma estrutura com um tamanho considerável, já no Docker temos nossa máquina virtual “empacotada”, portável e simples funcionando com as tecnologias LXC, Aufs e Btrfs.

Porque usar?

Auxilia o desenvolvimento com a possibilidade de criar rapidamente o ambiente necessário em poucos instantes, imagine precisar testar sua aplicação no python/php/java em uma versão diferente da sua, mudar de versão na sua máquina nem pensar, com o docker você encontra várias máquinas já disponíveis, sobe a máquina, testa a sua aplicação e pronto.

Dicionário rápido

Imagens — São os templates com toda a estrutura lógica da nossa máquina virtual, você pode ter várias imagens com versão distintas do mesmo sistema operacional (Ubuntu, fedora, debian…) além de poder ter ambientes de desenvolvimento nodejs, ruby, php, java …, frameworks e afins.

Contêiner — São nossas máquinas virtuais prontas para trabalhar.

Mão na massa

Para instalar no linux utilize o comando aptitude install docker.io ou sudo apt-get install docker no windows clique aqui e para mac baixe nesse link.

Dica: Para evitar colocar sudo para todos os comandos execute os comandos:
sudo gpasswd -a ${USER} docker
sudo service docker restart
Quer saber todos os comando que o docker tem? Digite docker no seu console, ele irá listar todos os comandos e parâmetros que podem ser utilizados no docker.
O docker possui um repositório público com diversos ambientes para você baixar e usar a vontade semelhante ao github, acesse hub.docker.com e faça seu cadastro gratuitamente, vai facilitar seu trabalho na hora de procurar um ambiente que alguém já montou, você também vai poder compartilhar as imagens que montar.

Baixando uma imagem (docker pull nome_da_imagem).

No exemplo acima iremos baixar uma imagem ubuntu versão 14.04, se quisermos uma versão diferente basta alterar a versão pela numeração correspondente. A imagem vêm limpinha, sem nenhum programa instalado, ideal para preparação de qualquer ambiente.

Depois de efetuar o download da imagem utilize o comando abaixo para listar as imagens para garantir que ela já está no seu docker.

docker images

Para criar nosso contêiner a partir da imagem que baixamos rodamos o comando:

docker run nome_da_imagem

para rodar e ir para o contêiner utilize:

docker run -i -t nome_da_imagem

Quando iniciamos um contêiner ele gera um id que a identifica, no entanto em vários momentos precisamos passar esse id para realizar comandos em nosso docker, para ser mais ágil podemos passar o comando:

docker run -i -t --name nome_do_conteiner nome_da_imagem

Ai você quer acessar seu contêiner e já abrir o console dele, basta colocar /bin/bash no nosso comando:

docker run -i -t --name nome_do_conteiner nome_da_imagem /bin/bash

Quer iniciar seu contêiner e fazer com que ele se comunique com alguma porta na sua máquina real, basta adicionar -p porta_maquina_real:porta_maquina_virtual:

docker run -i -t -p 80:80 --name nome_do_conteiner nome_da_imagem /bin/bash

Para montar uma pasta da nossa máquina real no nosso contêiner basta usar -v caminho_da_pasta_maquina_real:caminho_da_pasta_maquina_virtual:

docker run -i -t -p 80:80 -v pasta_local:pasta_virtual --name nome_do_conteiner nome_da_imagem /bin/bash

Para exibir os contêineres que estão iniciados use o comando:

docker ps

Para listar os contêineres paradas/pausados

docker ps -a

Para parar um contêiner:

docker stop nome_do_conteiner ou id

Parar todos os contêineres:

docker stop $(docker ps)

Restartar um contêiner:

docker restart nome_do_conteiner ou id

Para apagar um contêiner, primeiro pare-o depois execute:

docker rm nome_do_conteiner ou id

Apagar todos os contêineres

docker rm -f $(docker ps -a -q)

Dica de ouro: Instalou tudo bonitinho, conseguiu rodar seu contêiner, e foi para dentro dele com os parâmetros -t -i ? não sabe como sair? simples digite exit ou ctrl + D, masssssssssss, quando você faz isso o contêiner para de funcionar, para sair e o contêiner continuar ativo basta digitar ctrl + P Q e enter, e para voltar basta executar:

docker attach nome_do_conteiner ou id

The End

Agora é com você, comece instalando o docker, baixe algumas imagens e comece a praticar.