Accéder au contenu principal

Ajouter des utilisateurs au groupe Docker : Un guide pour les professionnels des données

Apprenez à utiliser correctement Docker sans sudo, tout en préservant la sécurité de vos systèmes.
Actualisé 18 mai 2025  · 10 min de lecture

Vous n'avez jamais été obligé de taper sudo avant chaque commande Docker ? Cet article est fait pour vous.

Par défaut, Docker verrouille l'accès à son démon, ne permettant qu'à root et aux membres du groupe Docker d'exécuter des commandes. Cela permet de sécuriser votre système, mais c'est ennuyeux lorsque vous travaillez avec des conteneurs toute la journée. Le groupe docker existe exactement pour cette raison - to vous permet d'utiliser Docker sans que les mots de passe sudo ne vous ralentissent.

Lorsque vous vous ajouterez au groupe Docker, vous remarquerez immédiatement la différence. Vous pouvez exécuter docker build, docker run, et d'autres commandes sans que des erreurs de permission ou des invites de mot de passe ne se produisent.

Dans cet article, vous apprendrez exactement comment ajouter des utilisateurs au groupe Docker sur différents systèmes, quels sont les risques de sécurité à surveiller et comment protéger votre système tout en facilitant l'utilisation de Docker.

> Les LLM font l'objet de toutes les attentions sur le site 2025. Suivez ce guide pas à pas pour le déploiement d'applications LLM à l'aide de Docker.

Comprendre le groupe Docker

Lorsque vous commencez à travailler avec Docker, vous vous heurtez rapidement à des problèmes de permission si vous n'avez pas configuré les choses correctement.

Voyons ce qu'est le groupe Docker et pourquoi il est important pour votre flux de travail.

Définition et fonctionnalité

Le groupe docker est un groupe d'utilisateurs système qui permet à ses membres d'utiliser le démon Docker sans avoir besoin des privilèges sudo.

Lorsque vous installez Docker sur des systèmes Linux, ce groupe est généralement créé automatiquement. Le fichier de socket de Docker (/var/run/docker.sock) est détenu par root mais a des permissions de groupe définies pour le groupe docker, ce qui explique le fonctionnement de ce contrôle d'accès.

Les utilisateurs de ce groupe peuvent créer des images, exécuter des conteneurs, gérer des réseaux et effectuer d'autres opérations Docker sans faire précéder les commandes de sudo. Cela signifie moins de saisie et pas de demande de mot de passe lorsque vous travaillez avec des conteneurs. Si vous essayez d'exécuter des commandes Docker sans faire partie de ce groupe, vous obtiendrez des erreurs de type "permission denied", ce qui finira par ralentir votre progression.

Conséquences de l'appartenance à un groupe sur la sécurité

L'ajout d'utilisateurs au groupe Docker comporte des risques de sécurité réels que vous ne devez pas ignorer. 

Les membres du groupe docker peuvent obtenir les privilèges root sur le système hôte. Cela se produit parce que Docker vous permet de monter des répertoires hôtes dans les conteneurs, y compris des répertoires système sensibles. Un utilisateur ayant accès à Docker peut créer un conteneur qui monte l'ensemble du système de fichiers racine et modifier n'importe quel fichier sur l'hôte.

Les vulnérabilités des conteneurs constituent un autre risque, car elles peuvent permettre aux attaquants d'échapper à l'isolation des conteneurs.

Vous ne devez ajouter que des utilisateurs de confiance au groupe Docker, et même dans ce cas, considérez que cela équivaut à leur donner un accès root. De nombreux professionnels de la sécurité recommandent de limiter l'appartenance au groupe Docker aux seuls utilisateurs qui en ont absolument besoin pour leur travail quotidien.

Mise en œuvre étape par étape

Maintenant que vous comprenez ce qu'est le groupe docker et ses implications, mettons les mains dans le cambouis avec l'installation proprement dite.

Création du groupe Docker

Dans la plupart des cas, vous n'aurez pas besoin de créer manuellement le groupe Docker puisqu'il est automatiquement créé lors de l'installation de Docker. Vous pouvez vérifier si le groupe existe en exécutant la commande :

grep docker /etc/group

Image 1 - Vérification de l'existence du groupe docker

Image 1 - Vérification de l'existence du groupe docker

Si, pour une raison quelconque, le groupe n'existe pas (comme dans mon cas), vous pouvez le créer à l'aide de cette commande (pour Linux uniquement) :

sudo groupadd docker

Cette commande crée le groupe docker sur votre système, mais elle est limitéeaux systèmes d'exploitation Linux

Pour macOS, vous pouvez suivre les instructions officielles d'Apple, car le groupe est créé via l'interface graphique. Le processus est similaire pour les systèmes d'exploitation Windows.

Après avoir suivi les étapes, vous devriez voir votre groupe créé :

Image 2 - Vérification de l'existence du groupe docker (2)

Image 2 - Vérification de l'existence du groupe docker (2)

Ajouter des utilisateurs au groupe

Pour ajouter votre utilisateur actuel au groupe Docker, exécutez la commande suivante sur les systèmes d'exploitation Linux :

sudo usermod -aG docker $USER

Le drapeau -a signifie "append" et -G indique le groupe auquel vous souhaitez ajouter l'utilisateur. La variable $USER utilise automatiquement votre nom d'utilisateur actuel.

Pour macOS et Windows, vous pouvez ajouter des utilisateurs au groupe via les Paramètres système ou le Panneau de configuration - il suffit de basculer un interrupteur pour ajouter tous les utilisateurs que vous souhaitez :

Image 3 - Ajouter des utilisateurs au groupe

Image 3 - Ajouter des utilisateurs au groupe

Après vous être ajouté au groupe, vous devez vous déconnecter et vous reconnecter pour que les changements prennent effet. Votre session actuelle ne reconnaîtra pas la nouvelle appartenance au groupe jusqu'à ce que vous vous déconnectiez complètement. Pour certains systèmes, il peut être nécessaire de redémarrer :

sudo reboot

Pour vérifier que votre utilisateur fait maintenant partie du groupe Docker, exécutez :

groups

Vous devriez voir "docker" listé parmi les membres de votre groupe :

Image 4 - Visualisation des groupes d'utilisateurs

Image 4 - Visualisation des groupes d'utilisateurs

Dépannage des problèmes courants

Si vous obtenez toujours des erreurs de type "permission denied" après vous être ajouté au groupe, il se peut que vous deviez corriger les permissions du socket Docker :

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

Un autre problème courant survient lorsque le service Docker redémarre, ce qui peut réinitialiser les autorisations de socket. Si Docker a été démarré après que vous ayez apporté des modifications au groupe, essayez de redémarrer le service Docker :

sudo systemctl restart docker

En cas de problèmes de permission persistants, vérifiez que la configuration de votre service Docker est correcte. Sur certains systèmes, Docker peut être configuré pour utiliser un nom de groupe ou un emplacement de socket différent. Vous pouvez consulter le fichier de configuration du démon Docker à l'adresse /etc/docker/daemon.json ou les fichiers de service à l'adresse /lib/systemd/system/docker.service.

N'oubliez pas que les modifications apportées aux autorisations ne s'appliqueront à votre session de connexion actuelle qu'une fois que vous vous serez déconnecté et reconnecté à l'adresse. C'est la première cause des problèmes du type "J'ai fait les changements, mais ça ne marche toujours pas".

Considérations et mesures d'atténuation en matière de sécurité

L'ajout d'utilisateurs au groupe Docker peut créer des risques de sécurité dont vous devez être conscient. Examinons ces risques et ce que vous pouvez faire pour protéger vos systèmes.

Risques liés à l'appartenance à un groupe Docker

L'appartenance à un groupe Docker est pratiquement la même chose que d'avoir un accès root à votre système. Ce n'est pas une exagération, c'est la réalité du fonctionnement de Docker.

Lorsque vous êtes dans le groupe docker, vous pouvez exécuter des conteneurs qui montent des parties sensibles du système de fichiers de votre hôte. Par exemple, cette simple commande vous donne un accès complet à la modification de n'importe quel fichier sur votre hôte :

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

Vous pouvez également modifier les paramètres des démons Docker, créer des conteneurs privilégiés ou utiliser le mode réseau de l'hôte pour contourner l'isolation du réseau. Ces capacités permettent à des utilisateurs malveillants (ou à des applications compromises ayant accès à Docker) de prendre complètement le contrôle de votre système hôte.

Il existe quelques autres risques potentiels que vous devez connaître :

  • Exécution de conteneurs qui accèdent directement aux périphériques matériels.
  • Liaison avec des ports de réseau à faible numérotation.
  • Démarrer des conteneurs avec des profils seccomp personnalisés qui désactivent les contrôles de sécurité.
  • Création de conteneurs qui utilisent l'espace de noms de processus de l'hôte.

Chacun de ces éléments peut être utilisé de manière abusive pour obtenir des privilèges élevés ou perturber le fonctionnement du système.

Meilleures pratiques pour l'atténuation des risques

Pour réduire ces risques, suivez le principe du moindre privilège- n'accordez l'appartenance à un groupe Docker qu'aux utilisateurs qui en ont absolument besoin. Si plusieurs personnes doivent utiliser un système partagé, envisagez de créer un compte utilisateur distinct uniquement pour les opérations Docker.

Lemode sans racinede Docker offre une alternative plus sûre à l'approche du groupe Docker. Le mode sans racine vous permet d'exécuter le démon Docker et les conteneurs en tant qu'utilisateur non racine, sans qu'il soit nécessaire d'appartenir à un groupe particulier :

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

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

Lesespaces de noms d'utilisateurs fournissent une autre couche de sécurité en faisant correspondre les UID des conteneurs à une plage différente sur l'hôte. Cela signifie que même si un conteneur s'exécute en tant que root (UID 0), ce processus correspond à un utilisateur non privilégié sur l'hôte :

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

Envisagez d'utiliser l'attribution statique d'UID/GID pour les utilisateurs de conteneurs afin de maintenir une correspondance cohérente des identités. Dans vos fichiers Docker, créez des utilisateurs spécifiques avec des identifiants prédéterminés :

# 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

Vérifiez régulièrement qui est membre du groupe Docker avec des commandes comme :

getent group docker

Supprimez les utilisateurs qui n'ont plus besoin d'accès :

sudo gpasswd -d username docker

Combinées, ces approches vous permettent, à vous et à votre équipe, de bénéficier de la commodité de l'appartenance à un groupe Docker tout en minimisant les risques de sécurité qu'elle introduit.

Configuration avancée et alternatives

Si vous cherchez d'autres moyens de gérer l'accès à Docker que l'approche standard de l'appartenance à un groupe, vous avez des options. Nous allons explorer quelques configurations avancées et alternatives qui pourraient mieux répondre à vos besoins en matière de sécurité.

Renforcement de la sécurité des fichiers Docker

Vous pouvez intégrer la sécurité directement dans vos fichiers Docker afin de réduire les risques, même lorsque les utilisateurs ont accès au groupe Docker.

Dans l'exemple ci-dessous, j'utiliserai des builds en plusieurs étapes pour garder vos images Python petites et réduire la surface d'attaque. 

Pour suivre, créez ces fichiers :

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"]

En bref, ce site Dockerfile comprend une instruction USER avec un utilisateur non root et copie le contenu pertinent (paquets Python) d'une étape de construction précédente.

> Si vous êtes novice en matière de conteneurisation d'applications, n'ayez crainte, notre guide complet vous couvre.

Vous pouvez construire et exécuter un tel conteneur à l'aide des commandes suivantes :

# 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

Image 5 - Exécution d'un conteneur avec des privilèges minimaux

Image 5 - Exécution d'un conteneur avec des privilèges minimaux

La commande nouvellement ajoutée - --cap-drop=ALL - supprime toutes les capacités Linux du conteneur (restreint les privilèges), tandis que la commande --cap-add=NET_BIND_SERVICE rétablit la capacité NET_BIND_SERVICE qui permet au conteneur de se lier à des ports de faible numérotation.

Ces techniques limitent ce qu'un conteneur peut faire, même si quelqu'un ayant accès au groupe docker tente de l'utiliser à mauvais escient.

sudo comme alternative

Si vous ne souhaitez pas ajouter d'utilisateurs au groupe Docker, l'utilisation de sudo est une alternative viable. Cette approche vous donne plus de contrôle et une piste d'audit des commandes Docker.

Vous pouvez créer une entrée sudoers personnalisée qui permet à des utilisateurs spécifiques d'exécuter uniquement des commandes Docker sans mot de passe :

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

Pour une meilleure utilisation, créez des alias dans votre fichier .bashrc ou .zshrc:

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

Cette approche sudo offre meilleure sécurité car :

  • Toutes les commandes Docker sont enregistrées dans les journaux du système.
  • Vous pouvez restreindre les sous-commandes Docker autorisées.
  • Les utilisateurs ne peuvent pas modifier la configuration du démon Docker.

L'inconvénient est un peu plus de saisie et des problèmes potentiels avec les outils qui attendent un accès direct à Docker.

Considérations relatives à Windows

Windows gère les autorisations Docker différemment de Linux. Au lieu du groupe docker, Windows utilise le groupe docker-users.

Pour ajouter un utilisateur au groupe docker-users sous Windows, procédez comme suit :

  1. Ouvrez la Gestion de l'ordinateur (cliquez avec le bouton droit de la souris sur Démarrer et sélectionnez "Gestion de l'ordinateur").
  2. Naviguez vers Outils système > Utilisateurs et groupes locaux > Groupes.
  3. Double-cliquez sur "docker-users".
  4. Cliquez sur "Ajouter" et saisissez le nom d'utilisateur.
  5. Cliquez sur "OK" et fermez la Gestion de l'ordinateur.

Image 6 - Groupes d'utilisateurs sous Windows

Image 6 - Groupes d'utilisateurs sous Windows

Vous pouvez également utiliser PowerShell avec des privilèges d'administrateur :

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

Après avoir ajouté un utilisateur, celui-ci devra se déconnecter et se reconnecter pour que les modifications soient prises en compte, comme sous Linux.

Il convient également de noter que Windows offre des fonctions de sécurité supplémentaires via Windows Defender Application Control et les modes d'isolation Hyper-V qui ne sont pas disponibles sous Linux. Pour les environnements Windows hautement sécurisés, vous pouvez utiliser ces fonctionnalités pour créer des frontières plus solides entre les conteneurs et l'hôte.

> Les professionnels des données ont besoin de Docker dans 2025, et ce guide vous montrera comment l'apprendre.

Résumé des groupes d'utilisateurs de Docker

Vous avez maintenant une vue d'ensemble de la façon d'ajouter des utilisateurs au groupe Docker et de l'importance de cette opération. Récapitulons ce que nous avons couvert.

L'ajout d'utilisateurs au groupe docker facilite grandement le travail avec les conteneurs en supprimant le besoin de commandes sudo. La procédure est simple : vérifiez si le groupe existe, ajoutez votre utilisateur à l'aide de usermod -aG docker $USER, puis déconnectez-vous et reconnectez-vous. Si vous rencontrez des problèmes, vérifiez les autorisations de votre socket et redémarrez Docker.

Mais n'oubliez pas que donner à quelqu'un l'accès au groupe docker revient à lui donner le mot de passe root. Toute personne appartenant à ce groupe peut monter l'ensemble de votre système de fichiers, installer des logiciels ou même modifier des fichiers système par l'intermédiaire de conteneurs. C'est pourquoi il est essentiel d'être sélectif quant aux personnes qui obtiennent cet accès.

Quelle est donc la bonne approche pour votre environnement ?

En général, pour les développeurs travaillant sur leurs propres machines, l'appartenance à un groupe Docker est suffisante. Pour les serveurs partagés ou les environnements de production, envisagez des alternatives telles que le mode sans racine, les espaces de noms d'utilisateurs ou l'utilisation de sudo avec des commandes limitées. Et quoi que vous fassiez, suivez toujours les meilleures pratiques de sécurité dans vos fichiers Docker en utilisant des utilisateurs non root et en supprimant les capacités inutiles.

Gardez un œil sur les personnes qui ont accès au groupe Docker en effectuant des audits réguliers. Les personnes changent de rôle, quittent l'équipe ou cessent simplement d'avoir besoin de certaines autorisations au fil du temps. Une vérification rapide sur getent group docker peut vous aider à repérer les utilisateurs qui ne devraient plus être là.

Si vous souhaitez en savoir plus sur Docker et la conteneurisation en général, ces cours de DataCamp sont votre meilleure prochaine étape :

Maîtriser Docker et Kubernetes

Apprenez la puissance de Docker et Kubernetes avec un cursus interactif pour construire et déployer des applications dans des environnements modernes.
Démarrer le cursus gratuitement

FAQ

Qu'est-ce que le groupe Docker et pourquoi est-ce important ?

Le groupe Docker est un groupe d'utilisateurs système qui permet à ses membres d'utiliser le démon Docker sans les privilèges sudo. Il existe pour rendre les commandes Docker plus pratiques en éliminant les invites de mot de passe et les erreurs de permission. Lorsque vous installez Docker sur des systèmes Linux, ce groupe est automatiquement créé et contrôle l'accès au fichier de socket Docker. L'ajout d'utilisateurs à ce groupe leur permet d'exécuter directement toutes les commandes Docker, ce qui améliore considérablement l'efficacité du flux de travail.

Quels sont les risques de sécurité liés à l'appartenance à un groupe Docker ?

L'appartenance à un groupe Docker accorde effectivement un accès équivalent à celui de root à votre système. Les membres peuvent monter le système de fichiers de l'hôte à l'intérieur des conteneurs, modifier les fichiers du système et éventuellement obtenir un accès administratif complet. Ils peuvent également modifier les configurations des démons Docker et exécuter des conteneurs privilégiés avec un accès direct au matériel. Ce niveau d'accès fait qu'il est crucial de n'ajouter que des utilisateurs de confiance au groupe Docker et de suivre des mesures supplémentaires de renforcement de la sécurité.

Puis-je utiliser Docker sans ajouter d'utilisateurs au groupe Docker ?

Oui, vous pouvez utiliser Docker sans ajouter d'utilisateurs au groupe Docker. L'alternative la plus courante consiste à utiliser sudo avant chaque commande Docker, ce qui offre une meilleure sécurité et des capacités d'audit. Une autre option consiste à configurer le mode sans racine de Docker, qui permet d'exécuter le démon et les conteneurs en tant qu'utilisateur non racine. Vous pouvez également créer des entrées sudoers personnalisées qui permettent à des utilisateurs spécifiques d'exécuter uniquement des commandes Docker sans mot de passe.

Comment vérifier qu'un utilisateur a bien été ajouté au groupe Docker ?

Vous pouvez vérifier que l'ajout au groupe Docker a bien eu lieu en exécutant la commande groups $USERNAME pour répertorier tous les groupes auxquels l'utilisateur appartient. Si "docker" apparaît dans la liste, l'utilisateur est membre. Vous pouvez également consulter getent group docker pour voir tous les membres du groupe Docker. N'oubliez pas que les utilisateurs doivent se déconnecter et se reconnecter avant que l'appartenance à un nouveau groupe ne prenne effet, ce qui constitue un point de dépannage courant.

En quoi la gestion des groupes Docker diffère-t-elle sous Windows par rapport à Linux ?

Windows utilise un groupe "docker-users" au lieu du groupe "docker" que l'on trouve sur les systèmes Linux. Sous Windows, vous ajoutez des utilisateurs via Computer Management ou PowerShell avec des privilèges d'administrateur en utilisant la commande Add-LocalGroupMember. Contrairement à Linux, Windows offre une sécurité supplémentaire grâce à Windows Defender Application Control et aux modes d'isolation Hyper-V. Cependant, comme sous Linux, les utilisateurs doivent se déconnecter et se reconnecter après avoir été ajoutés au groupe pour que les modifications soient prises en compte.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Scientifique de données senior basé en Croatie. Rédacteur technique de premier plan avec plus de 700 articles publiés, générant plus de 10 millions de vues. Auteur du livre Machine Learning Automation with TPOT.
Sujets

Apprenez-en plus sur Docker avec ces cours !

Cursus

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.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow