GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Exécutez Docker en tant qu'utilisateur non root

Les conteneurs Docker s'exécutent par défaut avec le privilège root, tout comme l'application qui s'exécute à l'intérieur du conteneur. Il s'agit d'une autre préoccupation majeure du point de vue de la sécurité, car les pirates peuvent obtenir un accès root à l'hôte Docker en piratant l'application exécutée à l'intérieur du conteneur.

Méthode 1 - Ajouter un utilisateur au groupe Docker

1. Pour exécuter Docker en tant qu'utilisateur non root, vous devez ajouter votre utilisateur au groupe docker.

2. Créez un groupe docker s'il n'y en a pas :

$ sudo groupadd docker

3. Ajoutez votre utilisateur au groupe docker :

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

4. Déconnectez-vous et reconnectez-vous afin que votre appartenance au groupe soit réévaluée.

Méthode 2 - Utilisation de Dockerfile (instruction USER)

Docker fournit une solution simple mais puissante pour changer le privilège du conteneur en un utilisateur non root et ainsi contrecarrer l'accès root malveillant à l'hôte Docker. Cette modification de l'utilisateur non root peut être effectuée à l'aide de -u ou -utilisateur option de la sous-commande docker run ou de l'USER instruction dans le Dockerfile.

1. Modifiez le Dockerfile qui crée un utilisateur à privilèges non root et remplacez l'utilisateur root par défaut par l'utilisateur à privilèges non root nouvellement créé, comme indiqué ici :

##########################################
# 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. Procédez à la création de l'image Docker à l'aide de la sous-commande "docker build", comme illustré ici :

$ sudo docker build -t nonrootimage .

3. Enfin, vérifions l'utilisateur actuel de notre conteneur à l'aide de la commande id dans une sous-commande docker run :

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

De toute évidence, l'utilisateur, le groupe et les groupes du conteneur sont désormais remplacés par un utilisateur non root.


Docker
  1. Comment exécuter un programme dans un conteneur Docker ?

  2. Est-ce une bonne pratique d'exécuter un démon sous un compte utilisateur non root ?

  3. Devriez-vous exécuter une base de données dans Docker ?

  4. Comment exécuter MySQL dans un conteneur Docker

  5. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

Comment exécuter Docker en tant qu'utilisateur non root sous Linux

Comment exécuter une application .NET dans Docker

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment exécuter des conteneurs Docker

Exécuter Docker Container en arrière-plan (mode détaché)