DEV Community

loading...

Instalando Docker no VirtualBox com Linux

Nelson Souza
・6 min read

Olá tudo bem? Mais um post mostrando como podemos usar o VirtualBox com Linux e Docker instalado. Aqui neste post, eu não estarei administrando containers, configurações de segurança e dentre outras coisas. Será algo bem mais simples.

Mas, que diabos é Docker?

Antes de falar algo sobre Docker, temos que saber um pouco sobre máquina física, máquinas virtuais e containers. E falando em forma simples sem voltas:

  • Máquina Física é um computador com sistema operacional, aplicações e serviços disponíveis a serem utilizados, tanto local e/ou remoto.
  • Máquinas Virtuais nada mais é que rodar um sistema operacional dentro de outro sistema operacional. Esta VM (como é chamada carinhosamente) terá aplicações e serviços comuns como se fosse uma máquina física.
  • Container não precisamos ter um sistema operacional virtualizado. Não tem aplicações e serviços instalados como um sistema operacional comum. Terá somente o processo que pedimos para instalar (ex: um servidor web) de forma isolada. Ele utilizará tudo de um “hospedeiro”, ou seja, um sistema operacional principal. De forma compartilhada, irá utilizar memória, processamento, espaço em disco etc. Isso o torna muito mais leve, rápido do que uma VM comum.

Tanto a Máquina Virtual ou Container, podem ser utilizados na nuvem ou no modelo on-premisse (com infraestrutura local).

Entendido essa parte, agora sim: Mas, que diabos é Docker?

A grosso modo falando, posso dizer no entendimento comum que Docker é, ou melhor, NÃO é uma máquina virtual e muito menos uma máquina física. É somente uma ferramenta open-source que dará vida, de forma mágica, aos nossos containers. Esses containers, como dito acima, serão um set (um pacote) de código, dependências e suas configurações de uma aplicação permitindo consistência, rapidez, granularidade nos recursos, aumentando a eficiência da infraestrutura.

Com containers é possível implantar e escalar rapidamente aplicações em qualquer ambiente e ter a certeza de que o seu código será executado.

Exemplo de 3 containers — pacotes de serviços e aplicações

“Na minha máquina funciona!”

Acho que essa frase é classica, não? 😄

Imagine criar um ambiente de desenvolvimento com SQL Server, cache usando Redis, um message broker com RabbitMQ e sua aplicação .NET se comunicando com esse pacote de serviços de infraestrutura?

Agora vamos pedir ao time de infra para criar um novo servidor para fazermos nossos desenvolvimentos e testes. Talvez criar uma VM ou adicionar usuários a um servidor físico, depois sair instalando essas aplicações, configurando isso e aquilo. Eu acredito que isso seria um pouco sofrido hein? Isso implica uma série de fatores que não entraremos em detalhes.

Um outro ponto é: Mas poderíamos criar toda essa infra em nossa máquina. Por que não? Verdade, por que não? Agora imagine que precisa trocar seu HD pois esse cara do nada fez o favor de queimar!! E aí? Pois digo meus amigos, sim Docker é vida!

Então é o seguinte:

  • Como podemos utilizar o Docker no nosso dia-a-dia para sanar alguns problemas de infraestrutura?
  • Resolver a clássica frase: “Na minha máquina funciona” e outras coisinhas a mais…
  • Um cara novo chegou na empresa e precisam configurar o ambiente de desenvolvimento. Posso então copiar para o colega o meu set de desenvolvimento, previamente configurado? Sim e de forma bem simples!

Instalando o Docker no Ubuntu Linux

Como dito acima, podemos gerar uma cópia do meu set configurado com algumas linhas de comando, mas neste momento, vamos abordar como usar o Docker em uma máquina virtual. Particularmente falando: o Virtual Box.

Eu particularmente uso Windows 10 como sistema operacional, mas gosto de usar o Docker diretamente no Linux por alguns fatores pessoais. Até por que vivo brigando: DOCKER É PARA LINUX E PONTO!!

Mesmo assim, a versão para Windows que pode ser instalada e utilizada perfeitamente como sua base. Você pode baixar a versão do Docker aqui.

Vale a pena ressaltar que algumas imagens de containers são exclusivas para Linux ou para Windows. Atente-se a isso!

Seguindo a idéia de que será Linux, teremos dos seguintes requisitos:

  • VirtualBox devidamente instalado e que pode baixar aqui.
  • Cliente SSH para acessar nossa VM. Eu gosto do Putty por ser levinho. Pode baixar ele aqui.
  • Uma imagem do Linux (pode ser Ubuntu, Alpine, CentOS, RedHat. Você decide!). Neste meu exemplo usaremos o Ubuntu Server e o mesmo pode ser baixado aqui. Eu instalei a versão 17.x.
  • Pelo menos 4Gb disponíveis para nossa VM. Como tenho 16Gb, escolhi 6Gb só mesmo para garantir. Exemplo: O SQL Server, por exemplo, roda com pelo menos 4Gb.

Depois de feito download do VirtualBox e instalado, criaremos nossa VM do Linux:

  • Depois clique em NEXT (ou Próximo se estiver instalado em pt-BR)
  • Escolha pelo menos 4Gb de memória (1024 * 4 = 4096Mb)
  • Selecionamos nossa VM criada, clicamos em SETTINGS (ou Configurações) em Storage vamos selecionar nossa imagem do Linux (já devidamente baixada) damos OK e pronto.

Vamos configurar e expor em nossa máquina virtual, a porta 22 para acesso via SSH. Mas porque? Por que usaremos um cliente SSH (Putty por exemplo) para podermos ter mais liberdade de copiar e colar textos. O terminal do VirtualBox não nos deixa fazer isso.

Para isso, faremos o seguinte:

Clique em SETTINGS > NETWORK > ADVANCED > PORT FORWARDING

  • Dê um nomezinho SSH só para saber do que se trata.
  • Adicione as entradas HOST PORT e GUEST PORT o valor 22. O valor 22 é o padrão de uma porta SSH.

Clique em OK e agora já podemos rodar! Clique em START e aguarde para que inicie o processo de instalação e configuração.

Configurando Ubuntu

Essa parte de instalação dá pra seguir por esta documentação. Da minha parte básica está ok. Só precisamos instalar o OpenSSH Server para que possamos usar nosso cliente SSH.

Pode ser durante o processo de configuração ou mesmo após a instalação. Sendo durante a instalação, olhe na etapa 9 (da documentação acima) o que deve ser selecionado. Caso esqueceu de instalar veja o procedimento abaixo:

sudo apt-get install openssh-server  
sudo service ssh status
Enter fullscreen mode Exit fullscreen mode

Após instalado e acessado o Linux com usuário que foi criado, vamos fazer algumas configurações:

  • Liberar acesso root para nosso cliente SSH (é só pra facilitar a vida mesmo...)
  • Atualizar nossos pacotes de arquivos com o apt-get e instalar o Docker

Liberando acesso root, digite na linha de comando o seguinte:

sudo passwd
Enter fullscreen mode Exit fullscreen mode

Isso irá criar uma senha para o usuário root (administrador). Escolha senha, repetindo para confirmar. Depois de criada a nova senha, digite:

logout
Enter fullscreen mode Exit fullscreen mode

Agora entre com usuário root no prompt de login.

Ok, vamos atualizar nossos pacotes com apt-get e instalar nosso Docker:

apt-get update && apt-get install curl nano -ycurl -fsSL [https://get.docker.com/](https://get.docker.com/) | shgroupadd docker && usermod -aG docker $USER && systemctl restart docker
Enter fullscreen mode Exit fullscreen mode

Após feito isso, teste pra ver se foi tudo bem instalado:

docker -v
Enter fullscreen mode Exit fullscreen mode

Aparecendo a versão do Docker, estará tudo ok.

Vamos configurar um parâmetro no config do nosso SSH para acessarmos o Linux via Putty. Digite o seguinte:

nano /etc/ssh/sshd_config
Enter fullscreen mode Exit fullscreen mode

Procure a seguinte linha: #PermitRootLogin. Descomente a linha (remova o #) e deixe desta forma:

PermitRootLogin yes
Enter fullscreen mode Exit fullscreen mode

Pressione Ctrl+X para sair e Y para salvar o arquivo. Agora reinicie o serviço de SSH.

service ssh restart
Enter fullscreen mode Exit fullscreen mode

Abra agora o Putty e tente acessar o Linux pela porta 22 (SSH).

Informe o login e senha do usuário root e tá tudo certo.

Discussion (0)