Skip to content

O que é Docker

A virtualização trouxe vários benefícios para os ambientes de TI mas é possível obter ainda mais segurança, performance e agilidade com containers. Entender o que é Docker e como funcionam containers é essencial para quem deseja explorar as atuais plataformas de computação em nuvem.

Neste primeiro artigo, vamos aprender mais sobre esta tecnologia e sobre sua principalmente implementação, o Docker. Além disso, vamos aprender como instalá-lo no Debian 9, dando continuidade a implementação da cultura DevOps.

 

1. O que é o Docker?

O Docker é uma plataforma de código aberto, criada pelo Google e desenvolvida na linguagem Go, que implementa a tecnologia de containers. Containers são pequenos espaços virtuais que compartilham o kernel do sistema operacional do host, o que significa que eles podem funcionar em qualquer sistema operacional (Linux, Windows, MacOS etc.) sem muita mudança. Embora seja a implementação de containers mais famosa, existem outras alternativas, como o LXC e o OpenVZ.

Um container Docker permite que os usuários empacotem um aplicativo, suas bibliotecas e outras dependências necessárias para executar, em uma unidade de software portátil. Em outras palavras, seu objetivo é criar, testar e implementar aplicações em um ambiente separado da máquina original. Dessa forma, o desenvolvedor consegue abstrair a infraestrutura e empacotar o software de maneira padronizada, criando microserviços.

 

DevSecOps: Baixe agora a Avaliação e descubra seu nível de maturidade DevOps. Conheça os próximos passos para implantar segurança em escala em sua aplicação e infra cloud-native.

 

 

2. Qual a diferença entre máquina virtual (vm) e container?

Máquinas virtuais e containers são duas tecnologias usadas para agrupar aplicativos e executar processos de forma isolada, mas com uma diferença importante. A máquina virtual é um ambiente virtual completo, o que significa que ela tem seu próprio sistema operacional e seus próprios recursos.

Por outro lado, o container compartilha o kernel do sistema operacional do host. Isso torna o container muito mais leve e rápido do que uma máquina virtual, pois não precisa ser carregado completamente como uma máquina virtual.

Além disso, as máquinas virtuais costumam ser configuradas manualmente, enquanto os containers podem ser configurados de forma automatizada através de scripts. Esta automação permite que os desenvolvedores criem rapidamente aplicativos usando containers.

Outra diferença importante é que as máquinas virtuais geralmente usam imagens específicas para cada sistema operacional, enquanto os containers usam imagens do Docker que podem ser baixadas do Docker Hub ou criadas sob medida por seus usuários.

Acessar o Docker Hub é fácil e intuitivo. Basta criar uma conta, buscar a imagem desejada e baixá-la para o computador. Com isso, qualquer pessoa pode ter acesso a imagens completas para criar os seus próprios containers sem precisar desenvolver tudo do zero. Além disso, o compartilhamento de imagens é incentivado no ambiente do Docker Hub, tornando mais fácil encontrar a imagem certa para sua necessidade.

Com o Docker, também fica fácil escalar aplicações, pois são muito rápidos de iniciar, parar e iniciar novamente.

 

2. Benefícios dos Containers

Portabilidade: Uma imagem do Docker, que são um ambiente separado da máquina original, pode ser executada em qualquer sistema operacional que tenha o Docker instalado. Isso ocorre porque a plataforma leva consigo as funções básicas para sua execução, como mencionamos acima. Em outras palavras, é possível desenvolver, empacotar uma vez e executar em qualquer lugar!

Performance: Em uma comparação com a virtualização convencional, é possível fazer um deploy até 7 vezes mais rápido, já que não precisamos migrar toda a máquina virtual. Além disso, máquinas virtualizadas são iniciadas da mesma forma que uma máquina física, necessitando do carregamento de todos os recursos de hardware e de software enquanto a paravirtualizada como em um container, carrega somente o que não possui. O restante ela pega da máquina que já está ligada, reduzindo tanto o tempo de boot como a concorrência por recursos de hardware.

Versionamento: Além de agilizar os processos, um container torna mais fácil o acesso a uma versão anterior, trazendo mais segurança e performance também para a equipe.

Automação: Ok, mas se o Docker usa as mesmas tecnologias que outras implementações de container como o LXC, XEN e OpenVZ, qual a grande diferença entre eles? Automação! As ferramentas para fazer o show acontecer acompanham o Docker: o Dockerfile, o Docker Engine, o Docker Compose e o Docker-Swarm. São elas que permitem a orquestração e escalonamento horizontal em tempo recorde.

 

3. Instalação do Docker no Debian 9

Execute os passos a seguir com o usuário root. Atualize seu repositório de pacotes

# apt-get update

Agora instale os pacotes extras necessários para a adição do novo repositório da ferramenta

# apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common

Faça o download e instalação da chave de segurança do repositório do Docker

# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -

Instale o novo repositório Docker no servidor

# add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

Atualize novamente o repositório

# apt-get update

Instale o Docker:

# apt-get install docker-ce docker-ce-cli containerd.io

Teste se foi instalado com sucesso, executando os comandos:

# docker ps  

# docker –version

 

4. Conclusão

Em suma, o Docker é uma plataforma de computação em nuvem que torna possível a criação e execução de containers. Esses containers são criados a partir de imagens baixadas do Docker Hub ou criadas pelo usuário. O kernel do sistema operacional hospedeiro é compartilhado entre os contêineres, permitindo que eles sejam executados em qualquer sistema operacional sem muitas mudanças. Os contêineres também oferecem servidores virtuais leves, pois permitem que as aplicações compartilhem recursos entre si.

O uso do Docker possibilita agilidade na execução das aplicações, pois os contêineres podem ser iniciados e parados rapidamente. Portanto, para quem deseja explorar as plataformas de computação em nuvem com praticidade e rapidez, entender como funcionam os container no Docker é essencial.

Se você estiver interessado neste assunto e desejar aprender mais sobre como funciona o container no Docker, nossos tutoriais exclusivos irão guiá-lo passo a passo através deste processo!