Olá, eu sou o Renoaldo, mas agora que você já está no segundo post (que a partir de hoje chamarei apelidosamente de Nota), pode me chamar de Renô.
O assunto de hoje é algo que comecei a usar essa semana: Docker!
Bom, para quem não conhece e eu confesso que ainda estou conhecendo, docker é uma espécie de versão 2.0 das Máquinas Virtuais (VM’s). E para quem não sabe o que é uma VM, pois bem, vamos lá! permita-me uma explicação rápida.
De modo geral, uma VM é um programa que roda em seu computador. A mágica das VM’s é que esse programa simula um computador também. Sendo assim, é como se você tivesse um computador dentro do seu computador. Por exemplo: um computador com o sistema operacional Windows ao abrir esse programa abre um programa de Virtualização, como o Virtual Box por exemplo, e ao apertar ‘start’ abre uma nova janela com o sistema operacional Linux, por exemplo. Assim você pode ter um Linux funcionando dentro do seu Windows. O contrário também poderia acontecer: Um Windows funcionando dentro do seu Linux.
Agora que você já sabe o que é uma Máquina Virtual (VM), fica muito mais fácil entender o Docker.
Para início de conversa e pelo que já vi, enquanto a VM virtualiza um “computador” inteiro no qual você consegue instalar programas, o Docker virtualiza um programa específico.
Por exemplo: Digamos que você queira jogar o jogo de cartas que vem no windows. Ao invés de virtualizar o Windows e jogar de cartas que há nele, você pode simplesmente instalar apenas o jogo de cartas.
E qual a diferença? Bom, os ganhos são absurdos! sobre tudo, no que se refere a uso de recursos computacionais como espaço em HD, uso de processador e Memória.
A virtualização de um sistema operacional inteiro demanda muitos recursos apenas para que esse funcione (VM) enquanto a virtualização de um programa (Docker) exige apenas recursos necessários para rodar apenas aquele programa. É como se na VM você tivesse que construir uma casa apenas para usar o quarto, enquanto com o Docker você poderia simplesmente construir o quarto e dormir o sono dos justos…rs
Veja a imagem a baixo e perceba o tamanho dos blocos. Quanto maior, mais recursos computacionais ele usa.
sudo docker run --restart=always --name=portainer -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce
O primeiro comando para baixar a imagem do portainer-ce (Comunity Edition) e o segundo para rodar o Portainer.
Encontrei uma dificuldade na hora de rodar o portainer devido a configuração da porta 9000. Em minha máquina ela estava sendo utilizada pelo HDFS Hadoop, então, após algumas pesquisas vi que a forma de configurar para outra porta era usando o parâmetro “9001:9000” para que ele pudesse rodar na porta 9001.
A seguir a inteface portainer:
Uma vez dentro do portainer e localizando os demais conteiners é possível ver apenas o portainer com status “running”. Ao final da linha é possivel perceber o 9001:9000 indicando a porta em que ele esta rodando:
Como é possível notar, o porteiner irá nos auxiliar a tornar as configurações do docker mais intuitivas pois ele traduz um amontoado de comandos em simples cliques de botões. Por exemplo, ao invés de digitar algo como o segundo comando que rodei acima configurando portas, aqui no portainer podemos simplesmente clicar em Start.
Em relação ao Portainer e Docker é isso. Em próximos posts pretendo falar um pouco mais sobre conteiners docker e hadoop! Obrigado pela companhia, até a próxima!