GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Esegui Docker come utente non root

Per impostazione predefinita, i contenitori Docker vengono eseguiti con il privilegio di root, così come l'applicazione che viene eseguita all'interno del contenitore. Questa è un'altra preoccupazione importante dal punto di vista della sicurezza perché gli hacker possono ottenere l'accesso come root all'host Docker hackerando l'applicazione in esecuzione all'interno del contenitore.

Metodo 1:aggiungi utente al gruppo Docker

1. Per eseguire Docker come utente non root, devi aggiungere il tuo utente al gruppo Docker.

2. Crea un gruppo Docker se non ce n'è uno:

$ sudo groupadd docker

3. Aggiungi il tuo utente al gruppo Docker:

$ sudo usermod -aG docker [non-root user]

4. Disconnettersi e riconnettersi in modo che l'appartenenza al gruppo venga rivalutata.

Metodo 2 – Utilizzo di Dockerfile (istruzione USER)

Docker fornisce una soluzione semplice ma potente per modificare il privilegio del contenitore in un utente non root e quindi contrastare l'accesso root dannoso all'host Docker. Questa modifica all'utente non root può essere eseguita utilizzando -u o –utente opzione del sottocomando di esecuzione della finestra mobile o di USER istruzioni nel Dockerfile.

1. Modifica il Dockerfile che crea un utente con privilegi non root e modifica l'utente root predefinito in un utente con privilegi non root appena creato, come mostrato qui:

##########################################
# Dockerfile to change from root to 
# non-root privilege
###########################################
# Base image is CentOS 7
FROM Centos:7
# Add a new user "john" with user id 8877
RUN useradd -u 8877 john
# Change to non-root privilege
USER john

2. Procedi con la creazione dell'immagine Docker utilizzando il sottocomando "docker build", come illustrato di seguito:

$ sudo docker build -t nonrootimage .

3. Infine, verifichiamo l'utente corrente del nostro container utilizzando il comando id in un sottocomando di esecuzione della finestra mobile:

$ sudo docker run --rm nonrootimage id
uid=8877(john) gid=8877(john) groups=8877(john)

Evidentemente, l'utente, il gruppo e i gruppi del contenitore sono ora cambiati in un utente non root.


Docker
  1. Come eseguire un programma all'interno di un contenitore Docker?

  2. Dovresti eseguire un database in Docker?

  3. Come eseguire un comando su un contenitore Docker in esecuzione

  4. Introduzione ai contenitori Docker

  5. Come utilizzare sudo per consentire a un utente non root di eseguire un comando particolare

Come eseguire Docker come utente non root in Linux

Come eseguire un'app .NET in Docker

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come eseguire i contenitori Docker

Esegui Docker Container in background (modalità separata)