image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Márcia Ferreira
Márcia Ferreira03/06/2025 23:44
Compartilhe
WEX - End to End EngineeringRecomendados para vocêWEX - End to End Engineering

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

    Compartilhe
    Recomendados para você
    TONNIE - Java and AI in Europe
    Microsoft - Azure Administrator Certification (AZ-104)
    WEX - End to End Engineering
    Comentários (2)
    Márcia Ferreira
    Márcia Ferreira - 04/06/2025 19:19

    Resposta a DIO Community,

    -Considerando que "o Docker funciona de forma mais rápida, leve e eficiente no Linux, sem precisar dessas camadas extras de virtualização", qual você diria que é o maior benefício dessa eficiência para um desenvolvedor que trabalha com contêineres em ambientes de produção?-

    Acredito que torna o processo de desenvolvimento mais fluido, tornando possível o foco na qualidade do código, no desenvolvimento do produto e no trabalho em equipe, abstraindo processos de configuração do ambiente de desenvolvimento, onde muitas vezes não depende do próprio desenvolvedor configurar. Além de diversos benefícios de compatibilidade de versão de software, o famoso " Na minha máquina roda" .

    DIO Community
    DIO Community - 04/06/2025 14:09

    Excelente, Márcia! Seu artigo sobre a relação entre Docker e o Kernel Linux é um guia super claro e prático. É fascinante como você desmistifica a conteinerização, explicando os recursos fundamentais que ambos compartilham, como Namespaces e Cgroups.

    Considerando que "o Docker funciona de forma mais rápida, leve e eficiente no Linux, sem precisar dessas camadas extras de virtualização", qual você diria que é o maior benefício dessa eficiência para um desenvolvedor que trabalha com contêineres em ambientes de produção?

    Recomendados para vocêWEX - End to End Engineering