Introdução ao Docker

Introdução ao Docker

Definição

É uma ferramenta para facilitar o gerenciamento de containers.

Não é a única ferramenta de gerenciamento de containers, porém é a mais adotada na comunidade de DevOps.

Alternativas: Podman ou Containerd

Os 2 principais conceitos do Docker são: imagem e container

IMPORTANTE: Docker não criou o container (conceito antigo no Kernel), mas criou um ferramental para facilitar a sua manipulação

Container

É uma instância em execução de uma imagem Docker.

Cada container corresponde a 1 processo rodando na máquina.

Imagem

Introdução

  • São templates (moldes) utilizados para a criação e execução de um container

    imagem docker

  • A criação de imagens Docker utiliza a tecnologia de Overlay Filesystem do Linux

  • Existem 2 formas de construir um imagem: Docker Commit ou Dockerfile

Overlay Filesystem

  • Definição: é a combinação e agrupamento de camadas de arquivos do sistema (arquivos somente leitura)

  • Função: cada instrução, no Dockerfile por exemplo, forma arquivos seja criando ou copiando os mesmos. Isso corresponde a uma camada de file system. Dessa modo, o empilhamento dessas camadas forma, no contexto do Docker, a imagem

  • Representação

  • Vantagem: reaproveitamento de espaço

    • Em imagens

    • Em containers

Formas de criação de imagens

  • Docker commit

    • Função: criação da imagem a partir de um container, ou seja, a geração da é feita a partir da imagem base do container, comandos executados dentro dele e arquivos copiados/criados

    • OBS: não é recomendado essa forma pelos seguintes motivos

      • Inviabiliza o versionamento, logo dificulta a sua distribuição

      • Difícil de se reproduzir (pelo fato de ser criado a partir de um container, a execução das instruções é feita em tempo de execução do mesmo. Portanto, não existe uma forma de versioná-lo)

      • Dificuldade na automatização de processos (como consequência do tópico anterior)

    • Exemplo: ir para o título Exemplo: Criar um container com Ubuntu e curl

  • Dockerfile

    É a forma recomendada

    • Função: é uma "receita" de criação de imagem. As instruções especificadas no Dockerfile são executas na ordem, e no final será criado a imagem

Leitura complementar: Boas práticas na criação de images

O melhor treinamento sobre Docker: Descomplicando o Docker

Obrigado pela recomendação. Vou dar uma olhada.