Pular para o conteúdo principal

Adicionar usuários ao Docker Group: Um guia para profissionais de dados

Saiba como usar corretamente o Docker sem sudo e, ao mesmo tempo, manter seus sistemas seguros.
Actualizado 18 de mai. de 2025  · 10 min de leitura

Você já teve que digitar sudo antes de cada comando do Docker? Este é o artigo para você.

Por padrão, o Docker bloqueia o acesso ao seu daemon, permitindo que apenas o root e os membros do grupo docker executem comandos. Isso mantém o sistema mais seguro, mas é irritante quando você trabalha com contêineres o dia todo. O grupo docker existe exatamente por esse motivo: para permite que você use o Docker sem que as senhas do sudo o atrapalhem.

Quando você se adicionar ao grupo do docker, perceberá a diferença imediatamente. Você pode executar docker build, docker run e outros comandos sem esses erros de permissão ou solicitações de senha.

Neste artigo, você aprenderá exatamente como adicionar usuários ao grupo docker em diferentes sistemas, quais riscos de segurança devem ser observados e como proteger seu sistema e, ao mesmo tempo, tornar o Docker mais fácil de usar.

> Os LLMs estão sendo muito badalados em 2025. Siga este guia passo a passo para a implantação de aplicativos LLM usando o Docker.

Entendendo o Docker Group

Quando começar a trabalhar com o Docker, você logo se deparará com problemas de permissão se não tiver configurado tudo corretamente.

Vamos explicar o que é realmente o grupo docker e por que ele é importante para o seu fluxo de trabalho.

Definição e funcionalidade

O grupo docker é um grupo de usuários do sistema grupo de usuários do sistema que dá aos membros permissão para usar o daemon do Docker sem precisar de privilégios sudo.

Quando você instala o Docker em sistemas Linux, esse grupo geralmente é criado automaticamente. O arquivo de soquete do Docker (/var/run/docker.sock) é de propriedade do root, mas tem permissões de grupo definidas para o grupo docker, que é como esse controle de acesso funciona.

Os usuários desse grupo podem criar imagens, executar contêineres, gerenciar redes e realizar outras operações do Docker sem prefixar comandos com sudo. Isso significa menos digitação e nenhuma solicitação de senha quando você estiver trabalhando com contêineres. Se você tentar executar comandos do Docker sem estar nesse grupo, receberá erros de "permissão negada", o que acabará atrasando seu progresso.

Implicações de segurança da associação a grupos

A adição de usuários ao grupo docker traz riscos reais de segurança que você não deve ignorar. 

Os membros do grupo docker podem obter privilégios de root no sistema host. Isso acontece porque o Docker permite que você monte diretórios do host em contêineres, incluindo diretórios sensíveis do sistema. Um usuário com acesso ao Docker pode criar um contêiner que monta todo o sistema de arquivos raiz e modificar qualquer arquivo no host.

Vulnerabilidades de fuga de contêineres representam outro risco, pois podem permitir que os invasores escapem do isolamento do contêiner.

Você só deve adicionar usuários confiáveis ao grupo docker e, mesmo assim, considere que isso equivale a dar a eles acesso root. Muitos profissionais de segurança recomendam limitar a associação ao grupo docker apenas aos usuários que absolutamente precisam dele para seu trabalho diário.

Implementação passo a passo

Agora que você entende o que é o grupo docker e suas implicações, vamos colocar a mão na massa com a configuração real.

Criando o grupo de docas

Na maioria dos casos, você não precisará criar o grupo do Docker manualmente, pois ele é criado automaticamente durante a instalação do Docker. Você pode verificar se o grupo existe executando:

grep docker /etc/group

Imagem 1 - Verificando se o grupo de docas existe

Imagem 1 - Verificando se o grupo de docas existe

Se, por algum motivo, o grupo não existir (como no meu caso), você poderá criá-lo com este comando (somente para Linux):

sudo groupadd docker

Esse comando cria o grupo docker em seu sistema, mas é limitadoaos sistemas operacionais Linux

No macOS, você pode seguir as instruções oficiais da Apple, pois o grupo é criado por meio da GUI. O processo é semelhante para os sistemas operacionais Windows.

Depois de seguir as etapas, você deverá ver o grupo criado:

Imagem 2 - Verificando se o grupo de docas existe (2)

Imagem 2 - Verificando se o grupo de docas existe (2)

Adicionar usuários ao grupo

Para adicionar seu usuário atual ao grupo docker, execute este comando nos sistemas operacionais Linux:

sudo usermod -aG docker $USER

O sinalizador -a significa "anexar" e -G especifica o grupo ao qual você deseja adicionar o usuário. A variável $USER usa automaticamente o seu nome de usuário atual.

No macOS e no Windows, você pode adicionar usuários ao grupo por meio das configurações do sistema ou do painel de controle - basta alternar um botão para adicionar todos os usuários que desejar:

Imagem 3 - Adicionando usuários ao grupo

Imagem 3 - Adicionando usuários ao grupo

Depois de se adicionar ao grupo, você deve fazer logout e login novamente para que as alterações tenham efeito. Sua sessão atual não reconhecerá a nova associação ao grupo até que você faça logout completo. Em alguns sistemas, talvez você precise reiniciar:

sudo reboot

Para verificar se o seu usuário agora faz parte do grupo do docker, execute:

groups

Você deverá ver "docker" listado entre os membros do grupo:

Imagem 4 - Visualização de grupos de usuários

Imagem 4 - Visualização de grupos de usuários

Solução de problemas comuns

Se você ainda receber erros de "permissão negada" depois de se adicionar ao grupo, talvez seja necessário corrigir as permissões do soquete do Docker:

sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock

Outro problema comum ocorre quando o serviço do Docker é reiniciado, o que pode redefinir as permissões de soquete. Se o Docker foi iniciado depois que você fez alterações no grupo, tente reiniciar o serviço do Docker:

sudo systemctl restart docker

Para problemas persistentes de permissão, verifique se a configuração do serviço do Docker está correta. Em alguns sistemas, o Docker pode estar configurado para usar um nome de grupo ou local de soquete diferente. Você pode verificar o arquivo de configuração do daemon do Docker em /etc/docker/daemon.json ou os arquivos de serviço em /lib/systemd/system/docker.service.

Lembre-se de que qualquer alteração de permissão que você fizer será aplicada à sua sessão de login atual somente depois que você sair e entrar novamente no site. Essa é a causa número um de problemas do tipo "Fiz as alterações, mas ainda não está funcionando".

Considerações e atenuações de segurança

Adicionar usuários ao grupo docker pode criar riscos de segurança, dos quais você precisa estar ciente. Vamos examinar esses riscos e o que você pode fazer para proteger seus sistemas.

Riscos da associação a grupos do docker

Ser membro de um grupo do Docker é praticamente o mesmo que ter acesso root ao seu sistema. Isso não é um exagero - é a realidade de como o Docker funciona.

Quando você está no grupo docker, pode executar contêineres que montam partes sensíveis do sistema de arquivos do host. Por exemplo, esse comando simples dá a você acesso completo para modificar qualquer arquivo no host:

docker run -it --rm -v /:/hostroot alpine chroot /hostroot

Você também pode alterar as configurações do daemon do Docker, criar contêineres privilegiados ou usar o modo de rede do host para ignorar o isolamento da rede. Esses recursos permitem que usuários mal-intencionados (ou aplicativos comprometidos com acesso ao Docker) assumam completamente o controle do seu sistema host.

Há alguns outros riscos potenciais que você deve conhecer:

  • Executar contêineres que acessam dispositivos de hardware diretamente.
  • Vinculação a portas de rede com número baixo.
  • Iniciar contêineres com perfis seccomp personalizados que desativam os controles de segurança.
  • Criação de contêineres que usam o namespace de processo do host.

Cada um deles pode ser usado indevidamente para obter privilégios elevados ou interromper as operações do sistema.

Práticas recomendadas para mitigação de riscos

Para reduzir esses riscos, siga o princípio do menor privilégio- conceda a associação ao grupo docker apenas aos usuários que absolutamente precisam dela. Se várias pessoas precisarem usar um sistema compartilhado, considere a possibilidade de criar uma conta de usuário separada apenas para as operações do Docker.

O modo sem raizdo Docker oferece uma alternativa mais segura à abordagem de grupo do Docker . O modo sem raiz permite que você execute o daemon do Docker e os contêineres como um usuário não raiz, sem precisar ser membro de nenhum grupo especial:

# Install Docker in rootless mode
dockerd-rootless-setuptool.sh install

# Start the rootless Docker daemon
systemctl --user start docker

Os namespacesde usuário fornecem outra camada de segurança mapeando os UIDs do contêiner para um intervalo diferente no host. Isso significa que, mesmo que um contêiner seja executado como raiz (UID 0), esse processo é mapeado para um usuário sem privilégios no host:

# Add to /etc/docker/daemon.json
{
  "userns-remap": "default"
}

Considere o uso de alocação estática de UID/GID para usuários de contêineres para manter um mapeamento de identidade consistente. Em seus Dockerfiles, crie usuários específicos com IDs predeterminados:

# Create a user with a static UID/GID
RUN groupadd -g 10001 appgroup && \
    useradd -u 10000 -g appgroup -s /bin/bash appuser

# Switch to that user
USER appuser

Audite regularmente quem é membro do grupo docker com comandos como:

getent group docker

E remova os usuários que não precisam mais de acesso:

sudo gpasswd -d username docker

Combinadas, essas abordagens oferecem a você e à sua equipe a conveniência da associação a grupos do docker, minimizando os riscos de segurança que ela introduz.

Configuração avançada e alternativas

Se estiver procurando maneiras diferentes de gerenciar o acesso ao Docker além da abordagem padrão de associação a grupos, você tem opções. Vamos explorar algumas configurações avançadas e alternativas que podem se adequar melhor aos seus requisitos de segurança.

Fortalecimento da segurança do Dockerfile

Você pode criar segurança diretamente em seus Dockerfiles para reduzir os riscos, mesmo quando os usuários têm acesso ao grupo docker.

No exemplo abaixo, usarei compilações em vários estágios para manter suas imagens Python pequenas e reduzir a superfície de ataque. 

Para acompanhar o processo, crie estes arquivos:

app.py:

from flask import Flask, jsonify

app = Flask(__name__)


@app.route("/api/health")
def health():
    return jsonify({"status": "healthy"})


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000, debug=True)

requirements.txt:

flask==3.1.0

Dockerfile:

FROM python:3.13-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

FROM python:3.13-slim
WORKDIR /app
COPY --from=builder /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages
COPY . .
RUN useradd -r -u 1000 -g users appuser
USER appuser
CMD ["python", "app.py"]

Em poucas palavras, este Dockerfile inclui uma instrução USER com um usuário não raiz e copia o conteúdo relevante (pacotes Python) de uma etapa de compilação anterior.

> Se você é novo no uso de aplicativos em contêineres, não se preocupe - nosso guia completo tem tudo o que você precisa.

Você pode criar e executar esse contêiner com os seguintes comandos:

# Build the image
docker build -t my-python-app .

# Run the container
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE my-python-app

Imagem 5 - Executando um contêiner com privilégios mínimos

Imagem 5 - Executando um contêiner com privilégios mínimos

O comando recém-adicionado - --cap-drop=ALL - elimina todos os recursos do Linux do contêiner (restringe os privilégios), enquanto o comando --cap-add=NET_BIND_SERVICE adiciona novamente o recurso NET_BIND_SERVICE, que permite que o contêiner se vincule a portas de número baixo.

Essas técnicas limitam o que um contêiner pode fazer, mesmo que alguém com acesso ao grupo docker tente usá-lo indevidamente.

sudo como uma alternativa

Se você não quiser adicionar usuários ao grupo docker, o uso do sudo é uma alternativa viável. Essa abordagem oferece a você mais controle e uma trilha de auditoria dos comandos do Docker.

Você pode criar uma entrada de sudoers personalizada que permita que usuários específicos executem apenas comandos do Docker sem uma senha:

# Add to /etc/sudoers.d/docker
username ALL=(root) NOPASSWD: /usr/bin/docker

Para melhorar a usabilidade, crie aliases em seu arquivo .bashrc ou .zshrc:

alias docker='sudo docker'
alias docker-compose='sudo docker-compose'

Essa abordagem sudo oferece a você melhor segurança porque:

  • Você recebe todos os comandos do Docker registrados nos logs do sistema.
  • Você pode restringir quais subcomandos do Docker são permitidos.
  • Os usuários não podem modificar a configuração do daemon do Docker.

A desvantagem é um pouco mais de digitação e possíveis problemas com ferramentas que esperam acesso direto ao Docker.

Considerações sobre o Windows

O Windows lida com as permissões do Docker de forma diferente do Linux. Em vez do grupo docker, o Windows usa o grupo docker-users.

Para adicionar um usuário ao grupo docker-users no Windows, faça o seguinte:

  1. Abra o Gerenciamento do computador (clique com o botão direito do mouse em Iniciar e selecione "Gerenciamento do computador").
  2. Navegue até Ferramentas do sistema > Usuários e grupos locais > Grupos.
  3. Clique duas vezes em "docker-users".
  4. Clique em "Add" (Adicionar) e digite o nome de usuário.
  5. Clique em "OK" e feche o Gerenciamento do computador.

Imagem 6 - Grupos de usuários no Windows

Imagem 6 - Grupos de usuários no Windows

Como alternativa, você pode usar o PowerShell com privilégios de administrador:

Add-LocalGroupMember -Group "docker-users" -Member "username"

Depois de adicionar um usuário, ele precisará fazer logout e login novamente para que as alterações tenham efeito, assim como no Linux.

Também vale a pena observar que o Windows oferece recursos de segurança adicionais por meio do controle de aplicativos do Windows Defender e dos modos de isolamento do Hyper-V que não estão disponíveis no Linux. Para ambientes de alta segurança no Windows, você pode usar esses recursos para criar limites mais fortes entre os contêineres e o host.

> Os profissionais de dados precisam do Docker na 2025, e este guia mostrará a você como aprendê-lo.

Resumindo os grupos de usuários do Docker

Agora você tem uma visão completa de como adicionar usuários ao grupo do docker e por que isso é importante. Vamos recapitular o que abordamos.

Adicionar usuários ao grupo docker facilita muito o trabalho com contêineres, pois elimina a necessidade de comandos sudo. É um processo simples: verifique se o grupo existe, adicione seu usuário com usermod -aG docker $USER e, em seguida, faça logout e login novamente. Se você tiver problemas, verifique as permissões do soquete e reinicie o Docker.

Mas não se esqueça de que dar a alguém acesso ao grupo docker é quase o mesmo que dar a ele a senha de root. Qualquer pessoa desse grupo pode montar todo o seu sistema de arquivos, instalar software ou até mesmo modificar arquivos do sistema por meio de contêineres. Por isso, é fundamental que você seja seletivo em relação a quem obtém esse acesso.

Então, qual é a abordagem certa para o seu ambiente?

Em geral, para os desenvolvedores que trabalham em suas próprias máquinas, a associação ao grupo docker é adequada. Para servidores compartilhados ou ambientes de produção, considere alternativas como o modo sem raiz, namespaces de usuário ou o uso do sudo com comandos limitados. E, independentemente do que você fizer, sempre siga as práticas recomendadas de segurança em seus Dockerfiles, usando usuários não root e eliminando recursos desnecessários.

Fique de olho em quem tem acesso ao grupo docker executando auditorias regulares. Com o tempo, as pessoas mudam de função, saem das equipes ou simplesmente deixam de precisar de determinadas permissões. Uma verificação rápida com getent group docker pode ajudar você a identificar usuários que não deveriam mais estar lá.

Se você quiser saber mais sobre o Docker e a conteinerização em geral, esses cursos da DataCamp são a sua melhor próxima parada:

Domine o Docker e o Kubernetes

Aprenda o poder do Docker e do Kubernetes com uma trilha interativa para criar e implantar aplicativos em ambientes modernos.
Inicie a trilha gratuitamente

Perguntas frequentes

O que é o grupo Docker e por que ele é importante?

O grupo Docker é um grupo de usuários do sistema que concede aos membros permissão para usar o daemon Docker sem privilégios sudo. Ele existe para tornar os comandos do Docker mais convenientes, eliminando solicitações de senha e erros de permissão. Quando você instala o Docker em sistemas Linux, esse grupo é criado automaticamente e controla o acesso ao arquivo de soquete do Docker. Adicionar usuários a esse grupo permite que eles executem todos os comandos do Docker diretamente, o que aumenta muito a eficiência do fluxo de trabalho.

Quais são os riscos de segurança decorrentes da associação a grupos do Docker?

A associação a grupos do Docker concede a você acesso equivalente ao de uma raiz ao seu sistema. Os membros podem montar o sistema de arquivos do host dentro dos contêineres, modificar arquivos do sistema e, possivelmente, obter acesso administrativo completo. Eles também podem alterar as configurações do daemon do Docker e executar contêineres privilegiados com acesso direto ao hardware. Esse nível de acesso faz com que seja crucial adicionar apenas usuários confiáveis ao grupo do Docker e seguir medidas adicionais de reforço da segurança.

Posso usar o Docker sem adicionar usuários ao grupo Docker?

Sim, você pode usar o Docker sem adicionar usuários ao grupo Docker. A alternativa mais comum é usar o sudo antes de cada comando do Docker, o que proporciona mais segurança e recursos de auditoria. Outra opção é configurar o modo sem raiz do Docker, que permite executar o daemon e os contêineres como um usuário não raiz. Você também pode criar entradas personalizadas de sudoers que permitam que usuários específicos executem apenas comandos do Docker sem uma senha.

Como posso verificar se um usuário foi adicionado com sucesso ao grupo do Docker?

Você pode verificar se a adição ao grupo do Docker foi bem-sucedida executando o comando groups $USERNAME para listar todos os grupos aos quais o usuário pertence. Se "docker" aparecer na lista, o usuário é um membro. Como alternativa, você pode verificar com getent group docker para ver todos os membros do grupo Docker. Lembre-se de que os usuários precisam fazer logout e login novamente para que as novas associações de grupo tenham efeito, o que é um ponto comum de solução de problemas.

Como o gerenciamento de grupos do Docker difere no Windows em relação ao Linux?

O Windows usa um grupo "docker-users" em vez do grupo "docker" encontrado nos sistemas Linux. No Windows, você adiciona usuários por meio do Gerenciamento do computador ou do PowerShell com privilégios de administrador usando o comando Add-LocalGroupMember. Ao contrário do Linux, o Windows oferece segurança adicional por meio do controle de aplicativos do Windows Defender e dos modos de isolamento do Hyper-V. No entanto, assim como no Linux, os usuários devem fazer logout e login novamente após serem adicionados ao grupo para que as alterações tenham efeito.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Cientista de dados sênior baseado na Croácia. Principal redator técnico com mais de 700 artigos publicados, gerando mais de 10 milhões de visualizações. Autor do livro Automação do aprendizado de máquina com TPOT.
Temas

Saiba mais sobre o Docker com estes cursos!

Programa

Containerization and Virtualization with Docker and Kubernetes

13 hr
Learn the power of Docker and Kubernetes, this interactive track will allow you to build and deploy applications in modern environments.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O guia completo da certificação Docker (DCA) para 2024

Libere seu potencial no Docker e na ciência de dados com nosso guia abrangente. Explore as certificações do Docker, os caminhos de aprendizado e as dicas práticas.
Matt Crabtree's photo

Matt Crabtree

8 min

Tutorial

Como instalar e configurar o MySQL no Docker

Saiba como instalar e configurar o banco de dados MySQL dentro de contêineres do Docker. O tutorial inclui conceitos como conexão com servidores MySQL, execução de clientes MySQL para conexão com contêineres e assim por diante.
Bex Tuychiev's photo

Bex Tuychiev

12 min

Tutorial

Como usar GROUP BY e HAVING no SQL

Um guia intuitivo para você descobrir os dois comandos SQL mais populares para agregar linhas do seu conjunto de dados
Eugenia Anello's photo

Eugenia Anello

6 min

Tutorial

Como escrever um script Bash: um tutorial simples de scripts Bash

Descubra os fundamentos da criação de scripts Bash e aprenda a escrever um script Bash.
Kurtis Pykes 's photo

Kurtis Pykes

5 min

Tutorial

Introdução aos acionadores SQL: Um guia para desenvolvedores

Saiba como usar os acionadores SQL para automatizar tarefas, manter a integridade dos dados e melhorar o desempenho do banco de dados. Experimente exemplos práticos como os comandos CREATE, ALTER e DROP no MySQL e no Oracle.
Oluseye Jeremiah's photo

Oluseye Jeremiah

13 min

Tutorial

Tutorial de armazenamento do AWS: Uma introdução prática ao S3 e ao EFS

O guia completo para armazenamento de arquivos no AWS com S3 e EFS.
Zoumana Keita 's photo

Zoumana Keita

14 min

Ver maisVer mais