O que é utilizado dentro de um contêiner Docker?
sobes.tech IA
Resposta da IA
O contêiner Docker utiliza uma série de tecnologias para o isolamento de processos e recursos:
-
Namespaces do núcleo Linux: Fornecem isolamento para vários recursos do sistema, tais como:
- PID (ID de Processo): Isolam processos.
- Net (Rede): Isolam a pilha de rede.
- Mount (mnt): Isolam os pontos de montagem do sistema de ficheiros.
- UTS (Unix Timesharing System): Isolam o nome do host e o nome de domínio.
- IPC (Comunicação entre processos): Isolam os mecanismos de interação entre processos.
- User (ID de utilizador e grupo): Isolam os identificadores de utilizador e grupos.
-
Grupos de controlo (cgroups): Gerem e limitam o uso de recursos de hardware para processos dentro do contêiner, incluindo:
- CPU: Limitação do uso do tempo de processador.
- Memory: Limitação do uso de memória RAM.
- Block I/O: Limitação da largura de banda de entrada/saída do disco.
- Net I/O: Limitação da largura de banda de entrada/saída de rede.
-
Sistemas de ficheiros union: Fornecem um sistema de ficheiros combinado composto por várias camadas. O Docker utiliza sistemas de ficheiros como OverlayFS, AUFS, Btrfs, ZFS. Isto permite gerir eficientemente o armazenamento de imagens e criar camadas apenas para alterações.
-
Processo Docker Daemon: Gere o ciclo de vida dos contêineres (criação, arranque, paragem, eliminação).
-
Runtime do contêiner: Execução de baixo nível do contêiner. O Docker utilizou e suporta diferentes runtimes, tais como
runc(especificação OCI),containerd. -
Imagem do contêiner: Conjunto de camadas do sistema de ficheiros e metadados necessários para executar a aplicação.
-
Aplicação: Código executável, bibliotecas, dependências e ficheiros de configuração que constituem o próprio programa, que funciona dentro do contêiner.
Em essência, um contêiner é um processo isolado (ou conjunto de processos) que funciona num ambiente restrito, fornecido pelo núcleo Linux e gerido pelo Docker.