DEV Community

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

Posted on • Edited 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

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →