CodeGym /Cursos /Docker SELF /Componentes principais do Docker

Componentes principais do Docker

Docker SELF
Nível 9 , Lição 2
Disponível

3.1 Docker Engine

Docker Engine — é o "motor" do Docker, ou seja, o software principal que permite o funcionamento dos containers. Esse motor fornece uma plataforma para desenvolvimento, entrega e execução de aplicações em containers isolados. Docker Engine contém vários componentes principais que garantem a funcionalidade completa do Docker.

O Docker Engine inclui três partes principais:

  1. Docker Daemon: processo de servidor. Ele executa as operações principais com containers.
  2. Docker API: interface que permite interagir com o Docker Daemon por meio de chamadas programáticas.
  3. Docker CLI: linha de comando — interface para trabalhar com o Docker.

O Papel do Docker Engine:

Docker Engine gerencia o ciclo de vida dos containers, desde a criação e inicialização até a remoção. Ele garante a isolação dos containers, permitindo executar vários containers no mesmo host sem conflitos. Docker Engine permite executar aplicações complexas e microsserviços em containers, facilitando o desenvolvimento, teste e implantação.

Evolução do Docker Engine

Desde o seu surgimento, o Docker Engine passou por muitas versões e melhorias. Cada atualização trouxe novas funcionalidades e melhorias de desempenho. Por exemplo, foram adicionadas capacidades de orquestração de containers, como o Docker Swarm, que permitem gerenciar clusters de containers e automatizar a implantação de aplicações.

3.2 Docker Daemon

Docker Daemon — é o processo principal do servidor que executa todas as operações do Docker. Ele roda em segundo plano e é responsável por gerenciar os containers, imagens, redes e outros recursos do Docker.

Funções do Docker Daemon:

  1. Criação e gerenciamento de containers: O Docker Daemon processa solicitações para criar, iniciar, parar e remover containers. Ele garante o isolamento dos containers e distribui recursos entre eles.
  2. Trabalho com imagens: O Docker Daemon faz o download e armazena as imagens de containers que são usadas para criar containers. Ele também gerencia o cache de imagens para otimizar o uso do espaço em disco.
  3. Gerenciamento de rede: O Docker Daemon cria e gerencia as redes Docker, que permitem que os containers interajam entre si e com sistemas externos. Ele suporta diferentes drivers de rede e configurações para garantir flexibilidade e segurança.
  4. Gerenciamento de armazenamento: O Docker Daemon gerencia volumes e outros tipos de armazenamento usados pelos containers para guardar dados. Ele garante uma administração confiável e eficiente dos dados dentro dos containers.

Arquitetura do Docker Daemon

Docker Daemon usa uma arquitetura cliente-servidor. O cliente (CLI ou API) envia comandos para o Docker Daemon, que os processa e executa. O Daemon funciona em sistemas operacionais como Linux, MacOS ou Windows.

Papel na segurança:

O Docker Daemon desempenha um papel crucial na garantia da segurança dos containers. Ele gerencia permissões de acesso, configurações de rede e isolamento dos containers, o que ajuda a limitar ameaças potenciais e vulnerabilidades. Usando namespaces (tecnologia de isolamento de processos e recursos) e cgroups (mecanismo de gerenciamento de recursos), o Docker Daemon isola processos e controla o uso de recursos pelos containers, garantindo sua operação segura.

3.3 Docker API

Docker API — é uma interface de programação que desenvolvedores e sysadmins usam pra gerenciar o Docker via código. Funciona no estilo RESTful (Representational State Transfer) — um jeito arquitetural onde as interações acontecem por meio de requisições HTTP padrão, como GET, POST e DELETE. Isso facilita a automação de tarefas relacionadas aos containers e a integração do Docker com outros sistemas e ferramentas.

Funções do Docker API:

  1. Gerenciamento de containers: O Docker API permite criar, iniciar, parar e apagar containers, além de acessar infos sobre o status deles e visualizar os logs.
  2. Trabalhar com imagens: Com o API dá pra baixar, criar, excluir e gerenciar as imagens dos containers.
  3. Operações de rede: O API suporta criar e gerenciar redes Docker, incluindo conectar e desconectar containers das redes.
  4. Gerenciar armazenamento: O API oferece funções pra gerenciar volumes e outros tipos de armazenamento que os containers usam pra guardar dados.

Usando o Docker API:

O Docker API pode ser usado com diferentes linguagens de programação e ferramentas de automação, tipo Python, Go, Java e outras. Isso permite criar scripts e apps pra automatizar processos de desenvolvimento, testes e deploy de apps em containers.

Exemplos de uso do Docker API:

  • CI/CD: Automatizar o processo de integração contínua e deploy, onde qualquer alteração no código automaticamente cria um novo container e testa ele.
  • Monitoramento e log: integração com sistemas de monitoramento e log pra acompanhar o estado dos containers e analisar o desempenho deles.
  • Orquestração: gerenciamento de clusters de containers com o Docker Swarm ou Kubernetes, usando o Docker API pra interactuar com os nodes e containers individuais.

3.4 Docker CLI

Docker CLI (Command Line Interface) — é a interface de linha de comando que permite aos usuários interagir com o Docker Daemon e realizar várias operações com containers. O Docker CLI oferece um jeito prático e bem intuitivo de gerenciar o Docker pelo terminal.

Comandos principais do Docker CLI:

O Docker CLI suporta um monte de comandos que possibilitam realizar todas as operações importantes com containers, imagens, redes e volumes. Alguns desses comandos incluem:

  • docker run: cria e executa um novo container baseado em uma imagem.
  • docker build: cria uma nova imagem usando um Dockerfile.
  • docker pull: baixa uma imagem do Docker Hub ou outro registro de repositório.
  • docker push: faz o upload de uma imagem local para o repositório.
  • docker ps: lista os containers em execução.
  • docker stop: para um container em execução.
  • docker rm: remove um container parado.
  • docker network: gerencia redes do Docker.

Características do Docker CLI:

  1. Facilidade de uso: O Docker CLI foi feito pra ser super intuitivo e fácil de usar. Os comandos têm uma estrutura simples e lógica, o que facilita pra galera que tá começando agora.
  2. Scripts e automação: O Docker CLI permite criar scripts pra automatizar tarefas relacionadas a containers. Isso deixa mais prático o gerenciamento de grandes clusters de containers e possibilita integrar o Docker a outras ferramentas e sistemas.
  3. Extensibilidade: O Docker CLI suporta plugins, que permitem estender sua funcionalidade e adicionar novos comandos. Isso faz do Docker CLI uma ferramenta flexível e adaptável pra diferentes necessidades e cenários.

Interação entre os componentes:

O Docker CLI interage com o Docker Daemon através da Docker API. Quando o usuário digita um comando no Docker CLI, ele é enviado pro Docker Daemon, que processa as ações e devolve os resultados no CLI. Essa interação permite um jeito poderoso e flexível de gerenciar containers e recursos do Docker.

Exemplos de uso do Docker CLI:

  • Desenvolvimento: os devs podem usar o Docker CLI pra criar rapidamente ambientes de desenvolvimento e teste isolados, facilitando mudar entre diferentes versões de bibliotecas e frameworks.
  • Deploy: os sysadmins podem usar o Docker CLI pra automatizar o deploy de aplicações em servidores e em ambientes de nuvem, garantindo estabilidade e previsibilidade no processo.
  • Debug e monitoramento: com o Docker CLI dá pra acessar facilmente os logs dos containers, checar o status deles e fazer debug das aplicações.

Docker Engine, Docker Daemon, Docker API e Docker CLI — esses são os componentes chave que fazem o Docker funcionar e possibilitam o gerenciamento de containers no ecossistema Docker. O Docker Engine é o núcleo do sistema, que inclui o Docker Daemon e o Docker API. O Docker Daemon cuida de todas as operações de criação e gerenciamento de containers, a Docker API oferece uma interface programável pra interagir com o Daemon, e o Docker CLI é a interface prática pra executar os comandos variados.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION