DEV Community

Cover image for Introdução ao Docker
RENATO ADORNO
RENATO ADORNO

Posted on • Updated on

Introdução ao Docker

O que é o Docker

Docker é uma empresa de conteinerização que permite a criação e uso de containers Linux.

Com o Docker, você pode tratar containers como máquinas virtuais modulares extremamente leves. Além de obter flexibilidade com esses containers, você pode criar, implantar, copiar e movê-los de um ambiente para outro, o que ajuda a otimizar seus aplicativos para a nuvem.

Em poucas palavras, o Docker é um programa de computador, uma ferramenta de linha de comando, uma plataforma de conteinerização, um produto e uma empresa.

O que são Containers

Containers são uma forma de virtualização a nível de sistema operacional que permite rodar múltiplos sistema isolados em um único sistema operacional

Uma virtualização comum, como por exemplo o VMware, é muito pesada e não performática.

Container não é como uma virtualização comum, a diferença principal, é que os containers conseguem compartilhar o mesmo kernel do sistema operacional, sendo assim muito mais performático.

Outra diferença de uma virtualização comum, é que, um container não deve ser utilizado para abrigar várias aplicações, e é justamente por isso que ele ocupa muito menos espaço que uma VM. Sua tendência é de manter somente o essencial no seu conteúdo.

O que são Imagens Docker

A imagem do Docker é aquela que vem com o código e pode ser executada em qualquer plataforma onde o Docker Engine esteja instalado.
Vamos dar um exemplo: Pense que um desenvolvedor escreve código e então ele empacota todo o código, dependências, instaláveis ​​etc em um arquivo chamado Dockerfile e cria uma imagem a partir dele. Agora esta imagem se for dada a qualquer desenvolvedor em qualquer plataforma será executada no Docker Engine como um container. As imagens do Docker são o núcleo de todo o Docker como plataforma. O Docker Image segue uma arquitetura em camadas que ajuda a imagem ser construída mais rapidamente.

Imagens podem se referir a praticamente qualquer tipo de container. Um exemplo disso é pensar o próprio sistema operacional Ubuntu, que possui uma imagem oficial no Docker Hub .

Docker Hub é o principal repositório de imagens Docker atualmente. Nele, possuímos o que é chamado de Registro (Registry) *, onde requisitamos essas imagens.

  • O Registry é um sistema de armazenamento e entrega, no qual podemos ter um usuário com nossas próprias imagens. Algo que lembra muito o GitHub, já que podemos dar pull nessas imagens para uso posterior.

Fluxo entre Containers e Imagens

Para explicar melhor a dinâmica entre containers e imagens, falaremos um pouco de como funciona o fluxo padrão do Docker :

Exemplo

Fluxo padrão do Docker
  • Tudo começa em um arquivo chamado Dockerfile . Este arquivo possui as instruções* necessárias para que possamos gerar uma imagem;
  • Aqui vão instruções de qual sistema operacional usar, tal como quais comandos devem ser executados quando a imagem for rodada em um container .

  • Após isso, podemos dar push ou pull (como em um repositório do GitHub) em uma imagem no Registry *;

  • Você pode dar pull na sua própria imagem (caso tenha dado push nela) ou em outra a sua escolha.

O Registro mais comum é o Docker Hub , mas temos outros exemplos, como mostrado na imagem.

  • Por último, rodamos a imagem em um container , utilizando o comando run .

  • Após isso, temos que dizer pro container o que deve acontecer, se ele deve se manter ativo ou não, caso o contrário, o container é encerrado. O que faz parte de seu ciclo de vida.

Como instalar o Docker

Siga os links do tutorial direto da documentação oficial do Docker.

Ubuntu
Debian
Fedora
MacOS
Windows

Top comments (0)