Docker essentials Flashcards
O que é, por que existe, arquitetura interna
O que é Docker
Docker é uma plataforma que permite criar, distribuir e executar aplicativos de maneira isolada e eficiente.
O que é um Docker Container
Um Docker container é uma unidade leve e isolada que empacota tudo o que um software precisa para rodar, incluindo o código, bibliotecas, dependências e configurações do sistema.
Na prática, um container é como uma “mini máquina” que roda apenas o necessário para a aplicação funcionar, sem precisar de um sistema operacional completo como acontece com as máquinas virtuais. Isso torna os containers mais leves e eficientes em termos de uso de recursos.
Liste um por um os:
Principais componentes da arquitetura do Docker
Docker Client, Docker Host, Docker daemon, Docker objects (Images, Containers, networks, volumes, plugins, etc), Docker registry
Linguagem de programação que foi escrito o Docker
GoLang
O que é:
Namespaces no Docker
Namespaces no Docker são uma tecnologia de isolamento que permite que cada container tenha sua própria visão restrita dos recursos do sistema, como processos, rede, sistema de arquivos, comunicação entre processos e IDs de usuários. Eles garantem que os containers funcionem de forma independente uns dos outros e do sistema host, criando ambientes isolados e seguros onde cada container opera como se estivesse em seu próprio “mini sistema”, sem interferir nos demais.
O que é:
Docker Client
Interface de linha de comando (CLI) que os usuários utilizam para interagir com o Docker. Ele envia comandos para o Docker Daemon, como criar, executar e parar containers.
O que é:
Docker Daemon
Processo (dockerd) principal do Docker que executa comandos do cliente, gerencia containers, imagens, volumes e redes. O Daemon é responsável por construir, executar e gerenciar os containers.
O que é:
Docker Images
São os arquivos imutáveis que contêm todos os dados e dependências necessárias para rodar um container, como o sistema operacional, bibliotecas e a aplicação em si. Elas são criadas a partir de arquivos chamados Dockerfiles e podem ser armazenadas no Docker Hub ou outros repositórios.
O que é:
Dockerfile
Arquivo de script que contém as instruções para criar uma imagem Docker. Ele define tudo que a imagem precisa para funcionar, como a base do sistema operacional, dependências, código da aplicação e comandos de configuração.
O que é:
Docker Volume
Mecanismo de armazenamento usado para persistir dados fora dos containers, garantindo que as informações permaneçam acessíveis mesmo que o container seja removido ou reiniciado.
O que é:
Docker Networks
Permitem a comunicação entre containers, o sistema host e outros serviços externos. O Docker pode configurar diferentes tipos de redes (bridge, host, overlay) para permitir essa comunicação de maneira controlada e isolada.
O que é:
Docker Hub
Repositório público de imagens Docker, onde os desenvolvedores podem compartilhar e baixar imagens pré-configuradas. Além do Docker Hub, também existem registries privados.
O que é:
Qual a principal diferença entre um Container e uma VM
Um Docker container é mais leve e eficiente que uma Virtual Machine (VM) porque compartilha o kernel do sistema operacional host, isolando apenas os processos e dependências necessários, enquanto uma VM executa um sistema operacional completo com seu próprio kernel, virtualizando hardware. Isso faz com que containers iniciem mais rapidamente, usem menos recursos e sejam mais adequados para rodar múltiplas instâncias de aplicações, enquanto as VMs proporcionam um isolamento completo, mas são mais pesadas e lentas devido à virtualização do sistema inteiro.
O que é:
O que é o Docker Compose
O Docker Compose é uma ferramenta que permite definir e gerenciar ambientes multi-containers de forma simples, usando um arquivo YAML para configurar todos os serviços, redes e volumes necessários para a aplicação. Com o Compose, é possível orquestrar a criação, execução e comunicação entre múltiplos containers com um único comando, facilitando o gerenciamento de ambientes complexos como aplicações de múltiplas camadas (backend, frontend, banco de dados) de maneira automatizada e consistente.
Compare:
Dockerfile versus Compose file
Um Dockerfile fornece as instruções necessárias para construir uma imagem de Docker, especificando o sistema base, dependências e configurações para o ambiente do container. Em contraste, um Compose file (arquivo docker-compose.yml) define e gerencia a configuração de múltiplos containers em execução, especificando como eles interagem entre si, além de redes e volumes. Frequentemente, um Compose file referencia um Dockerfile para construir a imagem necessária para um ou mais serviços.