GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Führen Sie Docker als Nicht-Root-Benutzer aus

Die Docker-Container werden standardmäßig mit Root-Rechten ausgeführt, ebenso wie die Anwendung, die im Container ausgeführt wird. Dies ist aus Sicherheitssicht ein weiteres großes Problem, da Hacker Root-Zugriff auf den Docker-Host erhalten können, indem sie die Anwendung hacken, die im Container ausgeführt wird.

Methode 1 – Benutzer zur Docker-Gruppe hinzufügen

1. Um Docker als Nicht-Root-Benutzer auszuführen, müssen Sie Ihren Benutzer zur Docker-Gruppe hinzufügen.

2. Erstellen Sie eine Docker-Gruppe, falls noch keine vorhanden ist:

$ sudo groupadd docker

3. Fügen Sie Ihren Benutzer zur Docker-Gruppe hinzu:

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

4. Melden Sie sich ab und wieder an, damit Ihre Gruppenmitgliedschaft neu bewertet wird.

Methode 2 – Verwenden von Dockerfile (USER-Anweisung)

Docker bietet eine einfache, aber leistungsstarke Lösung, um das Privileg des Containers auf einen Nicht-Root-Benutzer zu ändern und so böswilligen Root-Zugriff auf den Docker-Host zu verhindern. Diese Änderung für den Nicht-Root-Benutzer kann mit -u durchgeführt werden oder –Benutzer Option des Unterbefehls docker run oder USER Anweisung in der Dockerfile.

1. Bearbeiten Sie die Docker-Datei, die einen Benutzer ohne Root-Rechte erstellt, und ändern Sie den Standard-Root-Benutzer in den neu erstellten Benutzer ohne Root-Rechte, wie hier gezeigt:

##########################################
# 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. Fahren Sie fort, das Docker-Image mit dem Unterbefehl „docker build“ zu erstellen, wie hier dargestellt:

$ sudo docker build -t nonrootimage .

3. Lassen Sie uns abschließend den aktuellen Benutzer unseres Containers mit dem id-Befehl in einem Docker-Run-Unterbefehl überprüfen:

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

Offensichtlich werden der Benutzer, die Gruppe und die Gruppen des Containers jetzt in einen Nicht-Root-Benutzer geändert.


Docker
  1. Wie führe ich ein Programm in einem Docker-Container aus?

  2. Ist es empfehlenswert, einen Daemon unter einem Nicht-Root-Benutzerkonto auszuführen?

  3. So führen Sie MySQL in einem Docker-Container aus

  4. So führen Sie einen Befehl in einem laufenden Docker-Container aus

  5. Einführung in Docker-Container

So führen Sie Docker als Nicht-Root-Benutzer in Linux aus

So führen Sie eine .NET-App in Docker aus

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So führen Sie Docker-Container aus

Docker-Container im Hintergrund ausführen (getrennter Modus)