Serverspace Black Friday
DF
novembro 27, 2025
Atualizado novembro 27, 2025

Contêineres Docker privilegiados vs não privilegiados: diferença, segurança e exemplos de uso

Em Docker, os contêineres podem ser executados em dois modos principais: privileged e non-privileged. Essa escolha determina o nível de acesso que o contêiner terá aos recursos e funções do sistema do host. Compreender as diferenças entre esses modos é extremamente importante: disso depende tanto a segurança do seu sistema quanto o funcionamento dos aplicativos dentro dos contêineres. O modo non-privileged é adequado para a maioria das tarefas diárias, fornecendo isolamento e proteção ao host, enquanto o privileged concede ao contêiner acesso completo aos dispositivos, núcleo e interfaces de rede do host, necessário apenas em casos específicos, como teste de drivers ou gerenciamento de hardware. Uma escolha consciente do modo de execução ajuda a equilibrar funcionalidade e segurança.

Contêineres Non-privileged (padrão)

O que é:

  • Os contêineres são executados em um ambiente restrito.
  • Não possuem acesso direto ao núcleo do host e à maioria dos recursos do sistema.
  • Não podem executar operações que exigem privilégios elevados (por exemplo, alterar interfaces de rede do host, gerenciar módulos do núcleo).

Características:

  • Segurança: Maior isolamento do host.
  • Limitações: Alguns aplicativos que exigem acesso de baixo nível ao host podem não funcionar.

Exemplos reais de uso: Serviços web, bancos de dados, aplicativos que não precisam alterar configurações do sistema do host.

Exemplo de execução:

docker run -it ubuntu:22.04 bash

Este contêiner é executado no modo non-privileged por padrão.

Contêineres Privileged

O que é:

  • O contêiner recebe acesso praticamente completo ao host.
  • Todas as capabilities do núcleo e acesso aos dispositivos do host são permitidos.

O contêiner pode:

  • Montar dispositivos do host (/dev),
  • Gerenciar módulos do núcleo,
  • Configurar interfaces de rede,
  • Executar outras operações do sistema como root no host.

Características:

  • Funcionalidade: O acesso completo ao host permite executar contêineres para software de sistema, emulação ou teste de drivers.
  • Risco: Aumento da ameaça à segurança. Se um invasor obtiver controle sobre esse contêiner, ele efetivamente terá controle sobre o host.

Exemplo de execução:

docker run --privileged -it ubuntu:22.04 bash

Quando usar:

  1. Para contêineres que precisam acessar dispositivos do host (por exemplo, USB, GPU).
  2. Para contêineres de sistema que emulam serviços do host.
  3. Para testes e depuração.

Diferenças de permissões

Característica Non-privileged Privileged
Acesso ao núcleo do host Não Sim
Acesso a dispositivos /dev Limitado Completo
Gerenciamento de módulos do núcleo Não Sim
Alteração de interfaces de rede do host Não Sim
Risco para a segurança Baixo Alto
Aplicação Aplicativos comuns, serviços Serviços de sistema, teste, acesso a dispositivos
Exemplo de execução docker run -it image bash docker run --privileged -it image bash

Recomendações

Na maioria dos casos, é melhor executar os contêineres no modo non-privileged — é seguro e ideal para aplicativos e serviços comuns que não precisam de acesso direto ao host. O modo privileged deve ser usado apenas quando realmente necessário, como quando seu aplicativo precisa gerenciar dispositivos, módulos do núcleo ou interfaces de rede do host. Mesmo nesses casos, é importante pensar na segurança e não conceder mais permissões do que o necessário. Frequentemente, uma boa alternativa ao `--privileged` completo é fornecer capabilities específicas via --cap-add ou acesso aos dispositivos necessários via --device, por exemplo:

docker run --cap-add=NET_ADMIN --device=/dev/sda1 -it ubuntu:22.04 bash

Dessa forma, você mantém o controle, aumenta a segurança e permite que o contêiner execute as tarefas necessárias sem riscos desnecessários.

Resumo rápido (Cheat Sheet)

Característica Non-privileged Privileged
Acesso ao núcleo do host Não Sim
Acesso a dispositivos /dev Limitado Completo
Gerenciamento de módulos do núcleo Não Sim
Alteração de interfaces de rede do host Não Sim
Risco para a segurança Baixo Alto
Aplicação Aplicativos comuns, serviços Serviços de sistema, teste, acesso a dispositivos
Exemplo de execução docker run -it image bash docker run --privileged -it image bash
Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 1
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.