Cloud Computing

23 mai, 2017

Configurando o container Docker em um Cloud

Publicidade

Seguindo o assunto de conteinerização, hoje trago um artigo prático onde vou configurar o Contêiner Docker dentro de uma instância Cloud. Para isto Utilizarei a plataforma DialCloud, da DialHost.

Contêiner

Só para recapitular o contêiner Docker trabalha em cima do Kernel do Linux para permitir que uma aplicação ganhe em portabilidade, isolamento, segurança contra violação externa, além de permitir o melhor gerenciamento de recursos.

Cada contêiner Docker irá iniciar uma imagem Docker, o que equivaleria a uma imagem virtual para a virtualização de máquina. Mas, no caso do Docker temos o benefício de eles utilizarem muito menos recursos, já que eles são baseados em um mesmo kernel. Através dele conseguimos uma base confiável de tudo que é necessário para executar as aplicações. Desta forma o Contêiner fica livre dos riscos externos causados pelas dependências.

Dockerfiles

Estes scripts são os responsáveis pelas orientações que devem ser executadas na montagem de uma nova imagem. Estes Scripts substituem o processo manual de configurar uma imagem para cada Contêiner que você for utilizar.

Prontos para começar

Agora que já deixamos claro os conceitos básicos para a conteinerização vamos iniciar a instalação. Primeiramente temos que criar uma instância. No caso peguei uma instância simples com 8GB de RAM e 40GB de disco e Ubuntu 14.04. Chamei ela em meu painel de docker-test, como podem ver abaixo.

 

Com esta instância montada e com todos os dados SSH em mãos vamos aos comandos de instalação.

Instalando o Docker

Com o acesso root em mãos vou entrar na máquina e buscar por atualizações do droplet. Para isto basta executar os comandos:

apt update
apt upgrade

Só por garantia, confira se seu sistema tem suporte ao  aufs (Ele é um controlador de armazenamento utilizado pelo Docker).

apt install linux-image-extra-`uname -r`

Agora temos que adicionar a chave e o repositório do Docker aos arquivos, apt-key e ao sources list

sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"

Faça um novo update no droplet com o primeiro comando que eu passei aqui e então instale o docker 🙂 \o/!

apt update
apt install lxc-docker

O Ubuntu possui um Firewall padrão que bloqueia o encaminhamento de pacotes. Este encaminhamento de pacotes é necessário para o funcionamento do docker. Assim, teremos que editar o arquivo ufw para liberar o encaminhamento.

Para isto entre no arquivo e então configure a opção DEFAULT_FORWARD_POLICY como “ACCEPT”

vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

Salve o arquivo e recarregue o UFW

ufw reload

Pronto, agora que seu docker está instalado você pode começar a montar seus contêineres utilizando imagens criadas por você, ou o que é mais legal ainda, buscando uma imagem publica oficial ou deixada pela comunidade através da docker Store.

Baixando uma imagem

Para um exemplo prático, vou buscar a imagem oficial hello world do Docker para fazer a instalação. Primeiramente a gente baixa a imagem para a máquina.

docker pull hello-world

Agora que a imagem já está na minha máquina eu posso criar um novo contêiner. Vale lembrar que não é possível criar um contêiner vazio, sem nenhuma execução. Por isso precisamos de uma imagem base. No exemplo abaixo eu vou criar um contêiner definindo o nome dele de my-hello e instalar minha imagem hello-world.

docker run --name=my-hello hello-world

Uma vez instalado você pode executar ele rodando o comando abaixo com o ID do contêiner

docker run eeb0fd308c5d

Agora basta você usufruir do contêiner Docker e a cada atualização que você fizer, não se esqueça de atualizar o dockerfile para não perder a portabilidade dele.