Docker e sua relação com o Kernel Linux
🐳 Introdução
Se você está iniciando sua jornada de aprendizado em Docker, que tal entender um pouco mais sobre a relação entre Docker e Linux?
Neste artigo, você vai conhecer os principais recursos que ambos compartilham e como o conhecimento em Linux pode acelerar seu aprendizado em conteinerização.
📦 Conteinerização
O conceito de conteinerização surgiu no final dos anos 1990 e início dos anos 2000, com tecnologias como FreeBSD Jails, Solaris Zones e IBM Workload Partitions.
No entanto, foi somente com o lançamento do Docker em 2013 que a conteinerização se popularizou mundialmente, graças à sua facilidade de uso e grande adoção na comunidade de tecnologia.
🔍 O que são contêineres?
Contêineres são tecnologias que permitem empacotar e isolar aplicações juntamente com todo o ambiente de runtime necessário para sua execução, incluindo bibliotecas, dependências e arquivos essenciais.
De forma resumida, é o agrupamento de uma aplicação junto com suas dependências, que compartilham o kernel do sistema operacional do host, seja ele uma máquina virtual ou física.
🐧 Qual é a relação entre Linux e Docker?
O Docker utiliza diretamente o kernel do Linux, fazendo uso de recursos fundamentais como:
- Namespaces — Isolamento de processos.
- Cgroups (Control Groups) — Gerenciamento e limitação de recursos (CPU, memória, I/O, etc.).
- UnionFS — Sistema de arquivos em camadas.
Os namespaces, introduzidos no kernel Linux a partir da versão 2.6.24, são responsáveis por permitir que cada contêiner tenha seu próprio ambiente isolado. Isso significa que cada contêiner possui:
- Sua própria árvore de processos.
- Seus pontos de montagem.
- Suas variáveis de rede.
- E outros recursos isolados.
➡️ Esse isolamento garante que um contêiner não interfira na execução de outro.
Os cgroups complementam esse isolamento, permitindo que o sistema controle o consumo de recursos como CPU, memória e disco, tanto para contêineres quanto para processos tradicionais no Linux.
🔧 Linux e Docker: Interface semelhante
O Docker, assim como o Linux, é amplamente gerenciado via linha de comando (CLI).
Se você já está acostumado a utilizar o terminal Linux para navegar entre pastas, manipular arquivos e monitorar processos, isso se torna uma grande vantagem no uso do Docker.
Por exemplo:
- Verificar processos →
ps
no Linux →docker ps
no Docker. - Acessar ambientes →
cd
+ls
no Linux →docker exec -it <container> bash
no Docker.
⚙️ Docker no Windows e no Mac: Ainda é Linux por trás!
Embora você possa instalar Docker no Windows ou no macOS, o que acontece nos bastidores é a execução de uma máquina virtual Linux oculta:
- 🔸 WSL2 no Windows.
- 🔸 HyperKit no macOS.
Isso ocorre porque o Docker depende diretamente de funcionalidades do kernel Linux, que não existem nativamente no Windows ou no macOS.
➡️ Por isso, o Docker funciona de forma mais rápida, leve e eficiente no Linux, sem precisar dessas camadas extras de virtualização.
🛠️ Meu projeto prático
Estou desenvolvendo um projeto que provisiona a instalação do Docker em uma distribuição Linux Ubuntu.
➡️ Criei um script em shell (bash) que automatiza toda a instalação do Docker.
Além disso, preparei uma pasta com vários comandos úteis de Linux e Docker, para que você possa praticar e experimentar no seu ambiente de estudo.
🔗 Te convido a visitar meu GitHub, conferir o projeto e, quem sabe, colaborar também!
FerreiraMCastro/run-docker: Istalação do Docker através do curl
👩💻 Sobre mim
Meu nome é Márcia Ferreira, sou estudante de Análise e Desenvolvimento de Sistemas, apaixonada por tecnologia, infraestrutura e cultura DevOps.
Atualmente, estou me aprofundando nos estudos de Linux, Docker, Terraform e computação em nuvem, sempre buscando compartilhar meus aprendizados com a comunidade.
📚 Fontes e Referências
- Site oficial do Docker: https://www.docker.com
- Red Hat — Documentação sobre Containers e Linux: https://www.redhat.com
- Documentação oficial do Docker e Kernel Linux.