Docker — Grosso modo

O Docker trabalha com o conceito de paravirtualização. A diferença entre virtualização e paravirtualização é que na virtualização todos os componentes de uma maquina são virtualizados, como o Disco, memória, processador, kernel.. tudo o que está na máquina é virtualizado. Já na paravirtualização o kernel do host é o mesmo da hospedeiro, então se tem o kernel e compartilhado e os demais componentes são virtualizados. O Docker “enjaula” o filesystem e a partir disso ele garante que as aplicações estão isoladas e trabalhando com segurança e leveza.

Arquitetura:

  1. INSTALANDO O DOCKER:

Para instalar o Docker utilizei o Ansible (É claro rs) usando uma role:

Se ainda tiver dúvidas sobre o Ansible consulte o post anterior ou me liga! Kkk

Agora, vamos trabalhar!

2. PACOTES

Ao trabalhar com o Docker é importante entender que existem dois pacotes:

Client: É quando por exemplo dou um comando dentro do Docker e não tem relação com o servidor.

Server: É o daemon que fica rodando. Por exemplo:

Para ficar mais claro, se o serviço do Docker for parado:

Não é possível interagir. Rs.

3. INSTANCIAS

Vamos agora falar sobre alguns conceitos de instancia, e para simplificar, entenda da seguinte forma:

IMAGEM = read-only (imutável)

CONTAINER = read and write (mutável)

Ou seja, o Docker veio para acabar com aquela desculpa do desenvolvedor de que “na minha máquina não está funcionando” rsrs. Uma imagem funciona em qualquer lugar!

Então vamos para a prática!

4. PRIMEIRO CONTAINER

Este container foi baseado em Debian e dei a ele o nome de “primeiro” e já executando um comando (command) para exemplificar de uma vez:

Imagem esta que vai ser buscada por padrão lá no repositório.

Veja que na execução acima esta sendo instalada a imagem do Debian..

E em seguida é executado o comando:

Logo após, se verificarmos:

Não existe container rodando! Isso porque o comando foi executado com sucesso:

<<< Exited (0)

Este é o conceito da leveza do Container (além da paravirtualização), ele cria a imagem do sistema, faz o que tem que fazer e “morre”.

Para iniciar este mesmo container basta dar um “START”:

E para remover é só dar um comando “RM”:

Para que esse container não “morra” logo em seguida podemos interagir dentro do container utilizando no comando a bash que é um binário com interação humana, tem que ter um humano utilizado esse comando para que ele funcione, para isso é passado o parâmetro IT:

I = interação

T = terminal (console)

E como podem ver, agora estamos interagindo dentro do Container.

“E para sair, Careca, como faz?” Para sair do Container não se deve dar um EXIT como já estamos acostumados, isso mataria o Container.

Temos que executar o seguinte comando:

Veja que o Container continua lá:

E para “atachar” (continuar) com o container, apenas:

Para iniciar um Container “desatachado”, ou seja, criar e não entrar logo de cara, usamos o “-d”:

Veja que não entrou no Container para interagir logo de cara.

5. TRANSFERIR ARQUIVOS

Para copiar um arquivo para dentro do Container é muito simples (tudo muito simples não é mesmo? Rs) pois usamos o comando CP, o mesmo usado no Linux.

E para verificar se de fato o arquivo foi copiado usamos o comando EXEC:

Obs: Não é possível copiar arquivos entre Container’s. Para isso é preciso passar o arquivo para a máquina host e repassar ao Container desejado, ou até mesmo via SSH.

Então aqui, basicamente, conseguimos CRIAR um container, PARAR, EXECUTAR, ENTRAR e SAIR, REMOVER um Container e COPIAR arquivos.

Like what you read? Give Heldo Barbosa a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.