A evolução do deploy de uma aplicação passou por vários processos. Inicialmente tínhamos um servidor físico para cada serviço, ou seja, havia um servidor, um sistema operacional e uma aplicação. Isso gera um aumento em manutenção de hardware, de atualização de patches de segurança ou upgrade da aplicação. Com a virtualização criamos uma camada de abstração do hardware, ou seja, podemos em UM hardware ter vários SOs, e consequentemente várias aplicações. Contudo a necessidade de gerenciamento do SO ainda existe (e ainda existe o SO do próprio hypervisor). Por fim chegamos ao container, ele eleva a abstração para o SO. Isto é, conseguimos abstrair o hardware e o sistema operacional, e deixar o container apenas para cuidar da aplicação. Nesse artigo vamos entender sobre o Docker.
Entendendo Docker
O Docker é uma plataforma que facilita o deploy de uma aplicação, dentre elas a mais importante é o Docker engine que faz o intermédio com o SO para gerenciamento dos containers. Existem também o Docker swarm, o Docker compose e o Docker hub.
Por conta da agilidade de seu deploy, ele se torna uma ferramenta poderosa para o ciclo de entrega contínua, pois se garante que as características que foram utilizadas em dev serão replicadas na sua totalidade para o ambiente de produção. Fora que a economia de recursos, acesso a imagens já customizadas pela comunidade (via docker hub) e gerenciamento facilitado, eleva as vantagens para a utilização.
Na AWS o Fargate é um serviço serveless em que, além de toda a facilidade de absorção de camadas, ele absorve inclusive o gerenciamento do sistema operacional, e da camada de container como um todo.
Nesse post, vamos focar na instalação do Docker como IaaS, e na utilização de um serviço de tacacs (aaa para dispositivos de redes).
Instalação (centos8)
Instalaremos o docker, e depois realizaremos o pull de uma imagem do tac_plus para servir como servidor de autenticação para nossos equipamentos.
1 – Remova todas as versões de docker que possam estar habilitadas:
2 – Desabilite o firewalld (por algum motivo ele impossibilita a resolução de DNS dentro dos containers):
3 – Adicione o repositório do docker:
dnf config-manager –add-repo=https://download.docker.com/linux/centos/docker-ce.repo
4 – Instale o docker. Percebam que aqui vamos utilizar a opção ‘nobest’, isso é necessário para as versões do CentOS 8, pois essa versão (até o momento) possui uma incompatibilidade com o deamon do container (containerd.io).
5 – Habilite o docker no sistema:
6 – Teste o docker validando a versão:
Comandos básicos
Com o Docker instalado vamos agora falar de alguns comandos básicos:
- docker ps -a: Mostra todos os containers, tanto os em execução quanto os parados.
- docker run: Executa um container com uma imagem específica (no nosso caso o Hello-Worl
- docker start|stop: Inicia um (ou mais) containers parados, ou para um (ou mais) containers ativos.
- docker rm: Remove um (ou mais) container. (você pega a lista com o docker ps -a)
- docker rmi: Remove um (ou mais) imagens. (você pega a lista com o docker images)
- docker container prune: Remove todos os containers que estão parados.
- docker images: Mostra todas as images que você já fez o pull
- docker exec -it: Roda um comando dentro do container (só o exec), e com a opção “-it” você aloca um tty dentro do container, ou seja, é a opção para ter acesso a console do container. exemplo: docker exec -it hello-wold bash
- docker network ls: Lista todas as redes criadas no Docker
- docker run: executa
Subindo uma:
That’s all folks! Be Happy!!!
Saiba tudo sobre containers! Confira nossos artigos sobre microsserviços e container!