Muitas pessoas se veem Iniciando no Mundo Docker, sem saber corretamente do que se trata e quais são suas especificações.

Como já falamos anteriormente o Docker não é um simples sistema, muito pelo contrário. Ele é uma plataforma open source completa. Para ter mais informações sobre o sistema, como histórico, e utilização basta clicar aqui.  No artigo Por que utilizar Docker?  vimos um pouco da história que envolveu a criação do Docker, como ocorre o seu funcionamento e questões de interesse mais informativo.

Contudo como nosso maior objetivo é que você tenha total domínio sobre a plataforma, hoje falaremos um pouco mais sobre a parte técnica do Docker. Para que você entenda como fazer a execução completa do Docker você precisa obter comandos muito específicos. Muitos destes comandos não estão disposniveis na internet então linkamos para você todos os que são indispensáveis para a execução do Docker.

Neste artigo vamos aprofundar um pouco mais nos conceitos do Docker e tudo que você precisa saber ao estar se Iniciando no Mundo Docker.

Iniciando no Mundo Docker

O projeto Docker consiste em várias partes principais, também sendo conhecidas como aplicações. Além dessas aplicações ele também é comporto por elementos. Os elementos  são usados ​​por essas partes, que são todos construídos sobre funcionalidades, bibliotecas e frameworks já existentes oferecidos pelo Linux kernel e terceiros.

Tudo funciona de forma organizada para garantir que a plataforma consiga entregar o que promete de fato. Um exemplo muito comum de sua ocupação é o LXC, o device-mapper, o aufs e etc.

Porém uma dúvida frequente de quem está Iniciando no Mundo Docker, diz respeito as suas partes. Como toda plataforma é preciso dar foco nos elementos principais, para que seja possível entender bem como a plataforma irá responder aos comandos e as aplicações.

Veja a seguir algumas das principais partes do Docker e ao que correspondem.
Principais partes o Docker

Uma das partes principais do Docker é o Daemon.
Daemon do docker: Ele é usado para gerenciar contêineres do Docker, o LXC, no host que está sendo ou será executado.

Outra parte que não pode deixar de ser explicada é o Docker CLI.
Docker CLI: é utilizado para comandar e se comunicar com o daemon do Docker. Dessa forma essas suas partes do Docker são interdependentes, precisando uma da outra para garantir que o Docker está 100% aplicável e utilizável.
O índice de imagens do Docker, é também fundamental, ele funciona como um repositório, que pode ser tanto público quanto privado, nele ficam guardadas as imagens do Docker.

E os elementos? Assim como as partes do Docker são importantes para quem está iniciando no Mundo Docker, os elementos dele também funcionam como formas intrínsecas de ação da plataforma.

Os principais elementos do Docker

Separamos 3 dos principais elementos do Docker, claro que existem outros que nos aprofundaremos mais a frente. Contudo compreendendo as funções e formas de ação destes 3 principais, ficará muito mais simples compreender como todo o processo se inicia.

Os principais elementos do Docker são os Contêiner, as imagens e os Dockerfiles. Veja a seguir tudo que cada um representa:

  1. Contêineres docker: Os contêineres são diretórios que mantém tudo que acontece do aplicativo. Funcionam como um grande deposito da aplicação que fica guardando e registrando tudo que vem do aplicativo.
  2. Imagens do docker: As imagens do Docker são na verdade as imagens contidas nos contêineres ou nos sistemas operacionais. Tudo que é visual fica registrado por esse elemento.
    Dockerfiles: Sõ scripts que automatizam o processo de construção de imagens.

 

Elementos do Docker

Agora que você já sabe quais são os principais elementos que compõe o Docker, é hora de mostrar quais são os elementos usados ​​pelas aplicações que formam todo o projeto do Docker.

Contêineres Docker

Nos contêineres do Docker ficam todos os procedimentos de portar aplicativos. Usando o docker depende exclusivamente do envio de contêineres. Os contêineres do Docker são basicamente diretórios que podem ser compactados como qualquer outro, então compartilhados e executados em várias máquinas e plataformas, ou como são mais conhecidas hosts, podendo inclusive estar em plataformas diferentes.

Vale ressaltar ainda que a única dependência é ter os hosts ajustados para executar os contêineres. Por exemplo, ter o docker instalado.

A contenção aqui é obtida via Linux Containers ou LXC. De resto todos os elementos são dependentes um do outro.

Mas afinal de contas o que é Containers Linux? Logo a seguir vamos te explicar de forma detalhada o que significa.

Contêineres Linux (LXC)

Contêineres Linux podem ser definidos como uma combinação de vários recursos em nível do kernel, ou seja, são ações que o kernel do linux pode fazer. Elas permitem o gerenciamento de aplicativos, como também de recursos utilizados por eles, contidos em seu próprio ambiente.

Contêineres Docker

Como já dissemos acima, para quem está iniciando no Mundo Docker, é muito importante entender o que são os Contêineres Docker.

Bom, o que ocorre é que são eles que permitem por exemplo a portabilidade de aplicativos, o isolamento de processos e ainda contam com uma gerência de consumo de recursos.

Os recipientes Docker exigem menos recursos do que as máquinas virtuais tradicionais que usadas para implantar aplicativos isolados. Gerando assim muito mais facilidades.

Sendo baseado e dependendo do LXC, a partir de um aspecto técnico, esses contêineres são como um diretório. Isso permite portabilidade e construções graduais de contêineres.

Cada contêiner é colocado em camadas como uma cebola e cada ação executada em um contêiner consiste em colocar outro bloco. Se trata na verdade de uma simples alteração no sistema de arquivos, ela é feita em cima do anterior.

Vantagens

As vantagens de ter contêineres são inúmeras, eles permitem que você consiga ter mais controle sobre todos os elementos da plataforma, te possibilita a chance de lançar e criar facilmente novos contêineres e imagens, que são, assim, mantidos leves. Isso tudo ocorre graças à maneira gradual e em camadas de serem construídos.

Cada contêiner do Docker é iniciado a partir de uma imagem do Docker que forma a base para outros aplicativos e camadas que estão por vir.

Images Docker

As imagens do Docker constituem a base de contêineres do Docker a partir da qual tudo começa a se formar. Eles são muito semelhantes às imagens de disco padrão do sistema operacional que são usadas para executar aplicativos em servidores ou computadores pessoais.

Ter essas imagens, por exemplo, a base do Ubuntu, permite uma portabilidade perfeita entre os sistemas. Eles criam uma base sólida, consistente e confiável com tudo o que é necessário para executar os aplicativos. Quando tudo é autocontido e o risco de atualizações ou modificações no nível do sistema é eliminado, o contêiner torna-se imune a exposições externas que podem colocá-lo fora de ordem.

Essas imagens de base podem ser explicitamente declaradas ao trabalhar com a CLI do Docker para criar diretamente um novo contêiner ou podem ser especificadas dentro de um Dockerfile para criação automatizada de imagens.

Dockerfiles

Os Dockerfiles são scripts que contêm uma série sucessiva de instruções, instruções e comandos que devem ser executados para formar uma nova imagem do Docker.

Cada comando executado se traduz em uma nova camada dessa arquitetura cebola, formando o produto final. Eles basicamente substituem o processo de fazer tudo manualmente e repetidamente.

Quando um Dockerfile termina a execução, você acaba de formar uma imagem, que então usa para iniciar (ou seja, criar) um novo contêiner.

Agora vamos deixar de falar e colocar a mão na massa

Bom, agora que você já sabe toda a teoria que envolve o Docker e suas especialidades, é hora te ensinar a colocar tudo isso em prática! Primeiramente vamos instalar o docker em nossa máquina local, para esse exemplo vamos usar o Ubuntu versão 16.04 64 bits.

Para começar vamos iniciar adicionando a chave GPG para o repositório oficial. Para fazer isso basta seguir os comandos abaxio;

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Depois de seguir este código você vai precisar adicionar o repositório APT. Mas pode ficar tranquilo que já vamos linkar aqui todos os comandos para que você baixe.

$ sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

Perfeito, agora vamos precisar atualizar o sistema. Logo que o sistema estiver instalado vamos ter que instalar o Docker Community Edition.

Veja o comando abaixo:

$ sudo apt-get update

$ sudo apt-get install -y docker-ce

Após a instalação vamos iniciar o daemon do Docker e habilitar para que esse processo seja iniciado quando o sistema iniciar.

$ sudo systemctl status docker

Por padrão a execução do Docker necessita de privilégios do root do sistema, isso faz que toda vez que precisamos executar um comando tenhamos que colocar o comando sudo antes do comando de execução do Docker, caso não queira ter que fazer isso você pode executar o comando a seguir:

sudo usermod -aG docker ${USER}

Enfim os comandos Docker

A estrutura de comandos do Docker é a seguinte:

$ docker [opção] [comando] [argumentos]

Se deseja visualizar todos os comandos possíveis no Docker execute no terminal, por esse comando:

$ docker

Docker Images

Os contêineres do Docker são executados a partir de imagens do Docker. Qualquer um pode criar e hospedar suas imagens do Docker no Docker Hub, de modo que a maioria dos aplicativos e distribuições Linux que você precisa para executar os contêineres do Docker tenha imagens hospedadas no Docker Hub.

Assim para checar que o acesso e download ao Docker Hub vamos executar no terminal, para fazer isso é preciso seguir os seguintes comandos:

$ docker run hello-world

Se tudo estiver corretor será exibido na tela uma mensagem de olá do Docker, mas se caso precise procurar uma imagem, você poderá usar o recurso de procura pelo terminal de forma manual.

Para isso siga e execute os seguintes comandos:

$ docker search ubuntu

Ou seja, esse comando vai listar as imagens que são coincidentes a sua string de busca.

Assim caso queira fazer o download da imagem para sua máquina local, precisará somente executar o comando docker pull, este é o nome da imagem, para esse exemplo vamos fazer o download de uma imagem do ubuntu:

$ docker pull ubuntu

Pronto, assim que o download for concluído, poderemos executar essa imagem com um simples comando:

$ docker run ubuntu

Para visualizar todas as imagens que estão feitas o download no sistema basta executar

$ docker images

Acessando a imagem

Assim caso precise acessar a imagem podemos ter um acesso interativo a ela, de modo semelhante ao que acontece com máquinas virtuais. Como já instalamos o ubuntu nos comandos anteriores vamos acessar ele com o comando:

$ docker run -it ubuntu

A combinação de comandos -i -t permite acesso ao contêiner através do shell.

Assim esses comandos fica tudo muito mais simples e prático. Assim basta seguir da forma como listamos e ver os resultados aparecendo em sua tela. Preste atenção na hora de fazer a execução.

Caso os resultados não tenham saído da forma como listamos aqui, recomece e repita o processo com mais atenção.

Depois de fazer os Downloads, executar os comandos é hora de ter o acesso. Com o acesso você pode executar qualquer comando dentro do contêiner, podemos atualizar o sistema, instalar mais recursos e ter acesso a uma grande rede de possibilidades.

Gostou do artigo? Ficou alguma dúvida? Tem uma sugestão? Conte para a gente aqui nos comentários tudo o que achou, se ficou com alguma dúvida basta nos contatar e teremos o maior prazer em te auxiliar.

Até a próxima!