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 nossa plataforma DialCloud.
Para quem quiser seguir desde o começo, deixo aqui o link do primeiro post sobre o assunto VMS vs Containers quais diferenças e usos?
Contêiner Docker
Só para recaptular 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.