Ti capita di dover digitare sudo prima di ogni comando Docker? Questo articolo fa per te.
Per impostazione predefinita, Docker limita l’accesso al suo demone, consentendo di eseguire comandi solo a root e ai membri del gruppo docker. Questo rende il sistema più sicuro, ma è fastidioso quando lavori tutto il giorno con i container. Il gruppo docker esiste proprio per questo motivo: perpermetterti di usare Docker senza che le password di sudo ti rallentino.
Quando ti aggiungi al gruppo docker, noterai subito la differenza. Puoi eseguire docker build, docker run e altri comandi senza errori di permessi o richieste di password.
In questo articolo imparerai esattamente come aggiungere utenti al gruppo docker su diversi sistemi, quali rischi per la sicurezza tenere d’occhio e come proteggere il sistema pur rendendo Docker più facile da usare.
Quando inizi a lavorare con Docker, ti imbatterai presto in problemi di permessi se non hai configurato tutto correttamente.
Vediamo cosa è davvero il gruppo docker e perché è importante per il tuo flusso di lavoro.
Definizione e funzionalità
Il gruppo docker è un gruppo di utenti di sistema che concede ai membri il permesso di usare il demone Docker senza dover ricorrere ai privilegi sudo.
Quando installi Docker su sistemi Linux, questo gruppo viene in genere creato automaticamente. Il file socket di Docker (/var/run/docker.sock) è di proprietà di root ma ha i permessi di gruppo impostati su docker: è così che funziona questo controllo degli accessi.
Gli utenti di questo gruppo possono creare immagini, avviare container, gestire reti ed eseguire altre operazioni Docker senza anteporre sudo ai comandi. Significa meno digitazione e nessuna richiesta di password quando lavori con i container. Se provi a eseguire comandi Docker senza essere in questo gruppo, otterrai errori "permission denied", finendo per rallentare i tuoi progressi.
Implicazioni di sicurezza dell’appartenenza al gruppo
Aggiungere utenti al gruppo docker comporta rischi di sicurezza reali che non dovresti ignorare.
I membri del gruppo docker possono ottenere privilegi di root sull’host. Questo accade perché Docker permette di montare directory dell’host nei container, incluse directory di sistema sensibili. Un utente con accesso a Docker può creare un container che monta l’intero filesystem di root e modificare qualsiasi file sull’host.
Vulnerabilità di evasione dal container costituiscono un altro rischio, perché potrebbero consentire agli attaccanti di sfuggire all’isolamento del container.
Dovresti aggiungere al gruppo docker solo utenti fidati e, anche in quel caso, considerarlo equivalente a concedere accesso root. Molti professionisti della sicurezza raccomandano di limitare l’appartenenza al gruppo docker solo agli utenti che ne hanno davvero bisogno per il loro lavoro quotidiano.
Implementazione passo dopo passo
Ora che sai cos’è il gruppo docker e le sue implicazioni, passiamo alla configurazione pratica.
Creazione del gruppo docker
Nella maggior parte dei casi, non dovrai creare manualmente il gruppo docker perché viene creato automaticamente durante l’installazione di Docker. Puoi verificare se il gruppo esiste eseguendo:
Questo comando crea il gruppo docker sul tuo sistema, ma è limitato ai sistemi operativi Linux.
Per macOS, puoi seguire le istruzioni ufficiali di Apple, dato che il gruppo si crea tramite interfaccia grafica. Il processo è simile per i sistemi operativi Windows.
Dopo aver seguito i passaggi, dovresti vedere il gruppo creato:
Immagine 2 - Verifica dell’esistenza del gruppo docker (2)
Aggiungere utenti al gruppo
Per aggiungere l’utente corrente al gruppo docker, esegui questo comando sui sistemi operativi Linux:
Il flag -a significa "append" e -G specifica il gruppo a cui vuoi aggiungere l’utente. La variabile $USER usa automaticamente il tuo nome utente corrente.
Su macOS e Windows, puoi aggiungere utenti al gruppo tramite le impostazioni di sistema o il Pannello di controllo: basta attivare un interruttore per aggiungere tutti gli utenti desiderati:
Immagine 3 - Aggiunta di utenti al gruppo
Dopo che ti sei aggiunto al gruppo, devi disconnetterti e rientrare perché le modifiche abbiano effetto. La sessione corrente non riconoscerà la nuova appartenenza al gruppo finché non esegui un logout completo. Su alcuni sistemi potrebbe essere necessario riavviare:
Dovresti vedere "docker" tra le appartenenze ai gruppi:
Immagine 4 - Visualizzazione dei gruppi utente
Risoluzione dei problemi comuni
Se continui a ricevere errori "permission denied" dopo esserti aggiunto al gruppo, potresti dover correggere i permessi del socket di Docker:
sudochown root:docker /var/run/docker.sock
sudochmod660 /var/run/docker.sockOfferto da
Un altro problema comune si verifica quando il servizio Docker si riavvia, cosa che può reimpostare i permessi del socket. Se Docker è stato avviato dopo le modifiche al gruppo, prova a riavviare il servizio Docker:
Per problemi di permessi persistenti, verifica che la configurazione del servizio Docker sia corretta. Su alcuni sistemi, Docker potrebbe essere configurato per usare un nome di gruppo o una posizione del socket diversi. Puoi controllare il file di configurazione del demone Docker in /etc/docker/daemon.json o i file di servizio in /lib/systemd/system/docker.service.
Ricorda che qualsiasi modifica ai permessi avrà effetto sulla tua sessione corrente solo dopo il logout e nuovo login. Questa è la causa numero uno dei problemi "ho fatto le modifiche, ma non funziona ancora".
Considerazioni sulla sicurezza e mitigazioni
Aggiungere utenti al gruppo docker può creare rischi per la sicurezza, di cui devi essere consapevole. Vediamo questi rischi e cosa puoi fare per proteggere i tuoi sistemi.
Rischi dell’appartenenza al gruppo docker
Essere membri del gruppo docker equivale praticamente ad avere accesso root al sistema. Non è un’esagerazione: è il funzionamento reale di Docker.
Quando fai parte del gruppo docker, puoi eseguire container che montano parti sensibili del filesystem dell’host. Per esempio, questo semplice comando ti dà pieno accesso per modificare qualsiasi file sull’host:
docker run -it--rm-v /:/hostroot alpine chroot /hostrootOfferto da
Puoi anche modificare le impostazioni del demone Docker, creare container privilegiati o usare la modalità di rete dell’host per aggirare l’isolamento di rete. Queste capacità consentono a utenti malevoli (o ad applicazioni compromesse con accesso a Docker) di prendere completamente il controllo dell’host.
Ci sono un paio di altri rischi potenziali che devi conoscere:
Eseguire container che accedono direttamente ai dispositivi hardware.
Associare porte di rete con numerazione bassa.
Avviare container con profili seccomp personalizzati che disattivano i controlli di sicurezza.
Creare container che usano lo spazio dei processi dell’host.
Ognuno di questi aspetti può essere abusato per ottenere privilegi elevati o interrompere le operazioni di sistema.
Best practice per mitigare i rischi
Per ridurre questi rischi, segui il principio del minimo privilegio — concedi l’appartenenza al gruppo docker solo a chi ne ha davvero bisogno. Se più persone devono usare un sistema condiviso, valuta la creazione di un account separato solo per le operazioni Docker.
La modalità rootless di Docker offre un’alternativa più sicura all’approccio basato sul gruppo docker. La rootless mode ti permette di eseguire demone e container Docker come utente non root, senza richiedere l’appartenenza a gruppi speciali:
# Installare Docker in modalità rootless
dockerd-rootless-setuptool.sh install# Avviare il demone Docker rootless
systemctl --user start dockerOfferto da
I namespace utente forniscono un ulteriore livello di sicurezza mappando gli UID del container a un intervallo diverso sull’host. Ciò significa che anche se un container gira come root (UID 0), quel processo viene mappato a un utente non privilegiato sull’host:
# Aggiungere a /etc/docker/daemon.json{"userns-remap":"default"}Offerto da
Valuta di usare allocazione statica di UID/GID per gli utenti del container per mantenere una mappatura di identità coerente. Nei tuoi Dockerfile, crea utenti specifici con ID predefiniti:
# Creare un utente con UID/GID statici
RUN groupadd-g10001 appgroup &&\useradd-u10000-g appgroup -s /bin/bash appuser
# Passare a tale utenteUSER appuserOfferto da
Controlla regolarmente chi appartiene al gruppo docker con comandi come:
Insieme, questi approcci ti offrono la comodità dell’appartenenza al gruppo docker riducendo al minimo i rischi per la sicurezza che introduce.
Configurazioni avanzate e alternative
Se cerchi modi diversi per gestire l’accesso a Docker oltre al classico approccio del gruppo, hai delle opzioni. Vediamo alcune configurazioni avanzate e alternative che potrebbero adattarsi meglio ai tuoi requisiti di sicurezza.
Hardening della sicurezza nei Dockerfile
Puoi integrare la sicurezza direttamente nei tuoi Dockerfile per ridurre i rischi anche quando gli utenti hanno accesso al gruppo docker.
Nell’esempio seguente userò build multi-stage per mantenere piccole le immagini Python e ridurre la superficie di attacco.
Per seguire, crea questi file:
app.py:
from flask import Flask, jsonify
app = Flask(__name__)@app.route("/api/health")defhealth():return jsonify({"status":"healthy"})if __name__ =="__main__":
app.run(host="0.0.0.0", port=8000, debug=True)Offerto da
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-u1000-gusers appuser
USER appuser
CMD ["python", "app.py"]Offerto da
In poche parole, questo Dockerfile include un’istruzione USER con un utente non root e copia i contenuti rilevanti (pacchetti Python) da uno step di build precedente.
Puoi creare ed eseguire un container del genere con i seguenti comandi:
# Creare l'immaginedocker build -t my-python-app .# Eseguire il containerdocker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE my-python-appOfferto da
Immagine 5 - Esecuzione di un container con privilegi minimi
Il comando appena aggiunto — --cap-drop=ALL — rimuove tutte le capability Linux dal container (ne limita i privilegi), mentre --cap-add=NET_BIND_SERVICE riaggiunge la capability NET_BIND_SERVICE, che consente al container di associare porte a numerazione bassa.
Queste tecniche limitano ciò che un container può fare, anche se qualcuno con accesso al gruppo docker tenta di abusarne.
sudo come alternativa
Se non vuoi aggiungere utenti al gruppo docker, usare sudo è un’alternativa valida. Questo approccio ti dà più controllo e una traccia di audit dei comandi Docker.
Puoi creare una voce sudoers personalizzata che consenta a utenti specifici di eseguire solo i comandi Docker senza password:
# Aggiungere a /etc/sudoers.d/docker
username ALL=(root) NOPASSWD: /usr/bin/dockerOfferto da
Per una migliore usabilità, crea alias nel tuo file .bashrc o .zshrc:
aliasdocker='sudo docker'alias docker-compose='sudo docker-compose'Offerto da
Questo approccio con sudo offre maggiore sicurezza perché:
Tutti i comandi Docker vengono registrati nei log di sistema.
Puoi limitare quali sottocomandi Docker sono consentiti.
Gli utenti non possono modificare la configurazione del demone Docker.
Lo svantaggio è un po’ di digitazione in più e potenziali problemi con strumenti che si aspettano accesso diretto a Docker.
Considerazioni per Windows
Windows gestisce i permessi di Docker in modo diverso rispetto a Linux. Invece del gruppo docker, Windows usa il gruppo docker-users.
Per aggiungere un utente al gruppo docker-users su Windows, fai così:
Apri Gestione computer (clic destro su Start e seleziona "Gestione computer").
Vai su Strumenti di sistema > Utenti e gruppi locali > Gruppi.
Fai doppio clic su "docker-users".
Clicca su "Aggiungi" e inserisci il nome utente.
Clicca su "OK" e chiudi Gestione computer.
Immagine 6 - Gruppi di utenti su Windows
In alternativa, puoi usare PowerShell con privilegi di amministratore:
Add-LocalGroupMember -Group"docker-users"-Member"username"Offerto da
Dopo aver aggiunto un utente, dovrà disconnettersi e rientrare perché le modifiche abbiano effetto, proprio come su Linux.
Vale anche la pena notare che Windows offre funzionalità di sicurezza aggiuntive tramite Windows Defender Application Control e modalità di isolamento Hyper‑V non disponibili su Linux. Per ambienti ad alta sicurezza su Windows, puoi usare queste funzionalità per creare confini più robusti tra container e host.
Ora hai una visione completa di come aggiungere utenti al gruppo docker e perché è importante. Facciamo un rapido riepilogo.
Aggiungere utenti al gruppo docker rende il lavoro con i container molto più semplice, eliminando la necessità dei comandi sudo. È un processo semplice: verifica se il gruppo esiste, aggiungi il tuo utente con usermod -aG docker $USER e poi disconnetti e riconnetti. Se incontri problemi, controlla i permessi del socket e riavvia Docker.
Ma non dimenticare che concedere l’accesso al gruppo docker è quasi come consegnare la password di root. Chiunque in questo gruppo può montare l’intero filesystem, installare software o persino modificare file di sistema tramite i container. Ecco perché è fondamentale essere selettivi su chi ottiene questo accesso.
Quindi qual è l’approccio giusto per il tuo ambiente?
In generale, per gli sviluppatori che lavorano sulle proprie macchine, l’appartenenza al gruppo docker va bene. Per server condivisi o ambienti di produzione, valuta alternative come la modalità rootless, i namespace utente o l’uso di sudo con comandi limitati. E qualunque cosa tu faccia, segui sempre le best practice di sicurezza nei Dockerfile usando utenti non root e rimuovendo le capability non necessarie.
Tieni d’occhio chi ha accesso al gruppo docker eseguendo audit regolari. Le persone cambiano ruolo, lasciano i team o smettono semplicemente di aver bisogno di certi permessi nel tempo. Un rapido controllo con getent group docker può aiutarti a individuare utenti che non dovrebbero più esserci.
Se vuoi saperne di più su Docker e sulla containerizzazione in generale, questi corsi DataCamp sono il passo successivo ideale:
Che cos’è il gruppo Docker e perché è importante?⌄
Il gruppo Docker è un gruppo di utenti di sistema che concede ai membri il permesso di usare il demone Docker senza privilegi sudo. Esiste per rendere i comandi Docker più comodi, eliminando richieste di password ed errori di permessi. Quando installi Docker su sistemi Linux, questo gruppo viene creato automaticamente e controlla l’accesso al file socket di Docker. Aggiungere utenti a questo gruppo consente loro di eseguire direttamente tutti i comandi Docker, migliorando notevolmente l’efficienza del flusso di lavoro.
Quali rischi di sicurezza comporta l’appartenenza al gruppo Docker?⌄
L’appartenenza al gruppo Docker di fatto garantisce un accesso equivalente a root al tuo sistema. I membri possono montare il filesystem dell’host all’interno dei container, modificare file di sistema e potenzialmente ottenere pieno accesso amministrativo. Possono anche cambiare la configurazione del demone Docker ed eseguire container privilegiati con accesso diretto all’hardware. Questo livello di accesso rende fondamentale aggiungere al gruppo Docker solo utenti fidati e adottare ulteriori misure di hardening della sicurezza.
Posso usare Docker senza aggiungere utenti al gruppo Docker?⌄
Sì, puoi usare Docker senza aggiungere utenti al gruppo Docker. L’alternativa più comune è usare sudo prima di ogni comando Docker, che offre migliore sicurezza e capacità di auditing. Un’altra opzione è configurare la modalità rootless di Docker, che consente di eseguire demone e container come utente non root. Puoi anche creare voci sudoers personalizzate che permettono a utenti specifici di eseguire solo i comandi Docker senza password.
Come verifico se un utente è stato aggiunto con successo al gruppo Docker?⌄
Puoi verificare l’aggiunta con successo al gruppo Docker eseguendo il comando groups $USERNAME per elencare tutti i gruppi a cui appartiene l’utente. Se "docker" compare nell’elenco, l’utente è un membro. In alternativa, puoi controllare con getent group docker per vedere tutti i membri del gruppo Docker. Ricorda che gli utenti devono disconnettersi e rientrare prima che le nuove appartenenze ai gruppi abbiano effetto, un punto spesso critico nella risoluzione dei problemi.
In che cosa differisce la gestione del gruppo Docker su Windows rispetto a Linux?⌄
Windows usa un gruppo "docker-users" al posto del gruppo "docker" presente sui sistemi Linux. Su Windows, aggiungi gli utenti tramite Gestione computer o PowerShell con privilegi di amministratore usando il comando Add-LocalGroupMember. A differenza di Linux, Windows offre funzionalità aggiuntive tramite Windows Defender Application Control e modalità di isolamento Hyper-V. Tuttavia, proprio come su Linux, gli utenti devono disconnettersi e rientrare dopo essere stati aggiunti al gruppo perché le modifiche abbiano effetto.
Senior Data Scientist con base in Croazia. Top Tech Writer con oltre 700 articoli pubblicati, per più di 10 milioni di visualizzazioni. Autore del libro Machine Learning Automation with TPOT.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Ti capita di dover digitare sudo prima di ogni comando Docker? Questo articolo fa per te.
Per impostazione predefinita, Docker limita l’accesso al suo demone, consentendo di eseguire comandi solo a root e ai membri del gruppo docker. Questo rende il sistema più sicuro, ma è fastidioso quando lavori tutto il giorno con i container. Il gruppo docker esiste proprio per questo motivo: per permetterti di usare Docker senza che le password di sudo ti rallentino.
Quando ti aggiungi al gruppo docker, noterai subito la differenza. Puoi eseguire
docker build,docker rune altri comandi senza errori di permessi o richieste di password.In questo articolo imparerai esattamente come aggiungere utenti al gruppo docker su diversi sistemi, quali rischi per la sicurezza tenere d’occhio e come proteggere il sistema pur rendendo Docker più facile da usare.
> Gli LLM sono sulla bocca di tutti nel 2025. Segui questa guida passo passo per distribuire applicazioni LLM con Docker.
Capire il gruppo Docker
Quando inizi a lavorare con Docker, ti imbatterai presto in problemi di permessi se non hai configurato tutto correttamente.
Vediamo cosa è davvero il gruppo docker e perché è importante per il tuo flusso di lavoro.
Definizione e funzionalità
Il gruppo docker è un gruppo di utenti di sistema che concede ai membri il permesso di usare il demone Docker senza dover ricorrere ai privilegi sudo.
Quando installi Docker su sistemi Linux, questo gruppo viene in genere creato automaticamente. Il file socket di Docker (
/var/run/docker.sock) è di proprietà di root ma ha i permessi di gruppo impostati su docker: è così che funziona questo controllo degli accessi.Gli utenti di questo gruppo possono creare immagini, avviare container, gestire reti ed eseguire altre operazioni Docker senza anteporre sudo ai comandi. Significa meno digitazione e nessuna richiesta di password quando lavori con i container. Se provi a eseguire comandi Docker senza essere in questo gruppo, otterrai errori "permission denied", finendo per rallentare i tuoi progressi.
Implicazioni di sicurezza dell’appartenenza al gruppo
Aggiungere utenti al gruppo docker comporta rischi di sicurezza reali che non dovresti ignorare.
I membri del gruppo docker possono ottenere privilegi di root sull’host. Questo accade perché Docker permette di montare directory dell’host nei container, incluse directory di sistema sensibili. Un utente con accesso a Docker può creare un container che monta l’intero filesystem di root e modificare qualsiasi file sull’host.
Vulnerabilità di evasione dal container costituiscono un altro rischio, perché potrebbero consentire agli attaccanti di sfuggire all’isolamento del container.
Dovresti aggiungere al gruppo docker solo utenti fidati e, anche in quel caso, considerarlo equivalente a concedere accesso root. Molti professionisti della sicurezza raccomandano di limitare l’appartenenza al gruppo docker solo agli utenti che ne hanno davvero bisogno per il loro lavoro quotidiano.
Implementazione passo dopo passo
Ora che sai cos’è il gruppo docker e le sue implicazioni, passiamo alla configurazione pratica.
Creazione del gruppo docker
Nella maggior parte dei casi, non dovrai creare manualmente il gruppo docker perché viene creato automaticamente durante l’installazione di Docker. Puoi verificare se il gruppo esiste eseguendo:
Immagine 1 - Verifica dell’esistenza del gruppo docker
Se, per qualche motivo, il gruppo non esiste (come nel mio caso), puoi crearlo con questo comando (solo per Linux):
Questo comando crea il gruppo docker sul tuo sistema, ma è limitato ai sistemi operativi Linux.
Per macOS, puoi seguire le istruzioni ufficiali di Apple, dato che il gruppo si crea tramite interfaccia grafica. Il processo è simile per i sistemi operativi Windows.
Dopo aver seguito i passaggi, dovresti vedere il gruppo creato:
Immagine 2 - Verifica dell’esistenza del gruppo docker (2)
Aggiungere utenti al gruppo
Per aggiungere l’utente corrente al gruppo docker, esegui questo comando sui sistemi operativi Linux:
Il flag
-asignifica "append" e-Gspecifica il gruppo a cui vuoi aggiungere l’utente. La variabile$USERusa automaticamente il tuo nome utente corrente.Su macOS e Windows, puoi aggiungere utenti al gruppo tramite le impostazioni di sistema o il Pannello di controllo: basta attivare un interruttore per aggiungere tutti gli utenti desiderati:
Immagine 3 - Aggiunta di utenti al gruppo
Dopo che ti sei aggiunto al gruppo, devi disconnetterti e rientrare perché le modifiche abbiano effetto. La sessione corrente non riconoscerà la nuova appartenenza al gruppo finché non esegui un logout completo. Su alcuni sistemi potrebbe essere necessario riavviare:
Per verificare che ora il tuo utente faccia parte del gruppo docker, esegui:
Dovresti vedere "docker" tra le appartenenze ai gruppi:
Immagine 4 - Visualizzazione dei gruppi utente
Risoluzione dei problemi comuni
Se continui a ricevere errori "permission denied" dopo esserti aggiunto al gruppo, potresti dover correggere i permessi del socket di Docker:
Un altro problema comune si verifica quando il servizio Docker si riavvia, cosa che può reimpostare i permessi del socket. Se Docker è stato avviato dopo le modifiche al gruppo, prova a riavviare il servizio Docker:
Per problemi di permessi persistenti, verifica che la configurazione del servizio Docker sia corretta. Su alcuni sistemi, Docker potrebbe essere configurato per usare un nome di gruppo o una posizione del socket diversi. Puoi controllare il file di configurazione del demone Docker in
/etc/docker/daemon.jsono i file di servizio in/lib/systemd/system/docker.service.Ricorda che qualsiasi modifica ai permessi avrà effetto sulla tua sessione corrente solo dopo il logout e nuovo login. Questa è la causa numero uno dei problemi "ho fatto le modifiche, ma non funziona ancora".
Considerazioni sulla sicurezza e mitigazioni
Aggiungere utenti al gruppo docker può creare rischi per la sicurezza, di cui devi essere consapevole. Vediamo questi rischi e cosa puoi fare per proteggere i tuoi sistemi.
Rischi dell’appartenenza al gruppo docker
Essere membri del gruppo docker equivale praticamente ad avere accesso root al sistema. Non è un’esagerazione: è il funzionamento reale di Docker.
Quando fai parte del gruppo docker, puoi eseguire container che montano parti sensibili del filesystem dell’host. Per esempio, questo semplice comando ti dà pieno accesso per modificare qualsiasi file sull’host:
Puoi anche modificare le impostazioni del demone Docker, creare container privilegiati o usare la modalità di rete dell’host per aggirare l’isolamento di rete. Queste capacità consentono a utenti malevoli (o ad applicazioni compromesse con accesso a Docker) di prendere completamente il controllo dell’host.
Ci sono un paio di altri rischi potenziali che devi conoscere:
Ognuno di questi aspetti può essere abusato per ottenere privilegi elevati o interrompere le operazioni di sistema.
Best practice per mitigare i rischi
Per ridurre questi rischi, segui il principio del minimo privilegio — concedi l’appartenenza al gruppo docker solo a chi ne ha davvero bisogno. Se più persone devono usare un sistema condiviso, valuta la creazione di un account separato solo per le operazioni Docker.
La modalità rootless di Docker offre un’alternativa più sicura all’approccio basato sul gruppo docker. La rootless mode ti permette di eseguire demone e container Docker come utente non root, senza richiedere l’appartenenza a gruppi speciali:
I namespace utente forniscono un ulteriore livello di sicurezza mappando gli UID del container a un intervallo diverso sull’host. Ciò significa che anche se un container gira come root (UID 0), quel processo viene mappato a un utente non privilegiato sull’host:
Valuta di usare allocazione statica di UID/GID per gli utenti del container per mantenere una mappatura di identità coerente. Nei tuoi Dockerfile, crea utenti specifici con ID predefiniti:
Controlla regolarmente chi appartiene al gruppo docker con comandi come:
E rimuovi gli utenti che non hanno più bisogno dell’accesso:
Insieme, questi approcci ti offrono la comodità dell’appartenenza al gruppo docker riducendo al minimo i rischi per la sicurezza che introduce.
Configurazioni avanzate e alternative
Se cerchi modi diversi per gestire l’accesso a Docker oltre al classico approccio del gruppo, hai delle opzioni. Vediamo alcune configurazioni avanzate e alternative che potrebbero adattarsi meglio ai tuoi requisiti di sicurezza.
Hardening della sicurezza nei Dockerfile
Puoi integrare la sicurezza direttamente nei tuoi Dockerfile per ridurre i rischi anche quando gli utenti hanno accesso al gruppo docker.
Nell’esempio seguente userò build multi-stage per mantenere piccole le immagini Python e ridurre la superficie di attacco.
Per seguire, crea questi file:
app.py:
requirements.txt:
Dockerfile:
In poche parole, questo
Dockerfileinclude un’istruzioneUSERcon un utente non root e copia i contenuti rilevanti (pacchetti Python) da uno step di build precedente.> Se sei alle prime armi con la containerizzazione delle applicazioni, niente paura: la nostra guida completa ti aiuta passo passo.
Puoi creare ed eseguire un container del genere con i seguenti comandi:
Immagine 5 - Esecuzione di un container con privilegi minimi
Il comando appena aggiunto —
--cap-drop=ALL— rimuove tutte le capability Linux dal container (ne limita i privilegi), mentre--cap-add=NET_BIND_SERVICEriaggiunge la capabilityNET_BIND_SERVICE, che consente al container di associare porte a numerazione bassa.Queste tecniche limitano ciò che un container può fare, anche se qualcuno con accesso al gruppo docker tenta di abusarne.
sudo come alternativa
Se non vuoi aggiungere utenti al gruppo docker, usare sudo è un’alternativa valida. Questo approccio ti dà più controllo e una traccia di audit dei comandi Docker.
Puoi creare una voce sudoers personalizzata che consenta a utenti specifici di eseguire solo i comandi Docker senza password:
Per una migliore usabilità, crea alias nel tuo file
.bashrco.zshrc:Questo approccio con sudo offre maggiore sicurezza perché:
Lo svantaggio è un po’ di digitazione in più e potenziali problemi con strumenti che si aspettano accesso diretto a Docker.
Considerazioni per Windows
Windows gestisce i permessi di Docker in modo diverso rispetto a Linux. Invece del gruppo docker, Windows usa il gruppo docker-users.
Per aggiungere un utente al gruppo docker-users su Windows, fai così:
Immagine 6 - Gruppi di utenti su Windows
In alternativa, puoi usare PowerShell con privilegi di amministratore:
Dopo aver aggiunto un utente, dovrà disconnettersi e rientrare perché le modifiche abbiano effetto, proprio come su Linux.
Vale anche la pena notare che Windows offre funzionalità di sicurezza aggiuntive tramite Windows Defender Application Control e modalità di isolamento Hyper‑V non disponibili su Linux. Per ambienti ad alta sicurezza su Windows, puoi usare queste funzionalità per creare confini più robusti tra container e host.
> I professionisti dei dati hanno bisogno di Docker nel 2025, e questa guida ti mostrerà come impararlo.
Riepilogo dei gruppi utenti Docker
Ora hai una visione completa di come aggiungere utenti al gruppo docker e perché è importante. Facciamo un rapido riepilogo.
Aggiungere utenti al gruppo docker rende il lavoro con i container molto più semplice, eliminando la necessità dei comandi sudo. È un processo semplice: verifica se il gruppo esiste, aggiungi il tuo utente con
usermod -aG docker $USERe poi disconnetti e riconnetti. Se incontri problemi, controlla i permessi del socket e riavvia Docker.Ma non dimenticare che concedere l’accesso al gruppo docker è quasi come consegnare la password di root. Chiunque in questo gruppo può montare l’intero filesystem, installare software o persino modificare file di sistema tramite i container. Ecco perché è fondamentale essere selettivi su chi ottiene questo accesso.
Quindi qual è l’approccio giusto per il tuo ambiente?
In generale, per gli sviluppatori che lavorano sulle proprie macchine, l’appartenenza al gruppo docker va bene. Per server condivisi o ambienti di produzione, valuta alternative come la modalità rootless, i namespace utente o l’uso di sudo con comandi limitati. E qualunque cosa tu faccia, segui sempre le best practice di sicurezza nei Dockerfile usando utenti non root e rimuovendo le capability non necessarie.
Tieni d’occhio chi ha accesso al gruppo docker eseguendo audit regolari. Le persone cambiano ruolo, lasciano i team o smettono semplicemente di aver bisogno di certi permessi nel tempo. Un rapido controllo con
getent group dockerpuò aiutarti a individuare utenti che non dovrebbero più esserci.Se vuoi saperne di più su Docker e sulla containerizzazione in generale, questi corsi DataCamp sono il passo successivo ideale: