Instalando Docker windows abrindo no ConEmu

Acho que não precisa nem dizer as vantagens de usar Docker. Todo mundo eufórico dizendo que tem que aprender Docker! que Docker é isso, Docker é aquilo... Que nunca mais vamos escutar aquela velha frase: "Engraçado, minha máquina funciona!".

Antes de começar, vamos deixar claro algumas coisas sobre docker:

  • Não é Máquina virtual, é Container!
  • Compartinha o kernel(linux) da máquina física.
  • Logo, minha máquina física pode ser Debian e eu posso subir um container do Ubuntu. Esse conteiner do Ubuntu compartilha o kernel da máquina física que nesse exemplo seria Debian. Isso o torna muito mais leve por que temos o mesmo kernel complatilhado entre a máquina física e o container.
  • Seguindo o mesmo raciocínio do exemplo acima, se eu subir um container Ubuntu pela primeira vez, o Docker acessa o repositório e baixa os arquivos do Ubuntu aproveitando o kernel da máquina física.
  • Agora vem outra vantagem que o torna mais leve ainda: Os arquivos do S.O. do container não ficam vinculados a minha imagem. Se eu subir outro container Ubuntu o aproveitamento é ainda maior por que o segundo container utiliza os arquivos do Ubuntu que já foram baixados pela primeira vez e o kernel da máquina física. Logo a diferença entre essas duas imagens seria somente os programas instalados em cada uma delas.
  • Isso resulta em um ganho exponencial em recursos de infra-estrutura.
  • Além da vantagem de poder trazer todo ambiente de desenvolvimento para o servidor de produção com arquivos de imagens extremamente leves comparados com máquinas virtuais.

Se compartinha o kernel(linux) da máquina física, como vai rodar no windows?

Resposta: Uma máquna virtual só com o kernel do linux (vou mostrar mais na frente).

Quando entramos no site do Docker (instalação para windows), temos dua opções: Docker for Windows e Docker Toolbox.

No meu caso quando tentei instalar Docker for Windows apareceu a mensagem:

this version of Docker requires windows 10 pro

Imagem

Como já diz a mensagem, vamos instalar o Docker toolbox. Quando você instala o Docker toolbox, já é instalado o bash do Git e Oracle Virtualbox.

Não vou coloar o link do instalador do Docker toolbox por que o link pode mudar e ficar quebrado. Mas você encontra esse instalador facilmente no site do Docker.

Depois de instalar o Docker toolbox é criado um atalho na área de trabalho como mostra a figura abixo:

Imagem

Se clicar no atalho para brir, o bash o git é executado e uma conexão ssh é aberta com a vm default.

Essa VM sobe no virtual box que já foi instalado junto com docker toolbox. É a VM com kernel do linux que falei no começo do post.

Depois que pegar o IP aparece o terminal do Docker pronto para usar como mostra a figura abaixo:

Imagem

Até aqui está tudo ok. Você já pode usar o Docker para criar seus containers. 

Mas essa janela é muito pequela. dificulta muito na hora de visualizar os containers.

Vamos Executar o docker pelo ConEmu. Para qem não conhece, você pode executar o git bash, cmd, e etc pelo ConEmu. 

A grande vantagem é que podemos visualizar em tela cheia, deixar transparente, alterar fontes, cores e etc.

Vamos lá! Baixe e instale o ConEmu. Com o ConEmu aberto tecle win+alt+P para abrir as configurações:

Imagem

Como mostra fa figura acima:

  •  Clique em + para adicionar uma nova task.
  • Dê um nome para essa task (no meu caso coloquei Docker)
  • Se preferir adicione um hotKey (atalho)
  • Em parametros adicione: 
       /icon "C:/Program Files/Docker Toolbox/docker-quickstart-terminal.ico"
  • E em commands:
  •    "-new_console:d:C:/Program Files/Docker Toolbox" "C:/Program Files/Git/bin/bash.exe" "C:/Program Files/Docker Toolbox/start.sh"

OBS: Se não funcionar com barra normal "/" tente barra invertida.

Pronto. Quando iniciar essa task já aber no Docker:

Imagem

Para se certificar que realmente está tudo ok, você pode digitar o comando:

  docker ps

Esse comando lista os containers. No nosso caso ainda não temos, mas já dá para ter uma de como gerenciar seus containers.

Comentários

 

Quem Sou

Graduado em ADS (Análise e desenvolvimento de sistemas).

Não sou "devoto" de nenhuma linguagem de programação. Procuro aproveitar o melhor de cada uma de acordo com a necessidade do projeto. Prezo por uma arquitetura bem feita, código limpo, puro e simples!