Modification des utilisateurs et du répertoire de travail

Présentation de Docker

Tim Sangster

Software Engineer @ DataCamp

Interaction des instructions Dockerfile

FROM, RUN et COPY interagissent via le système de fichiers.

COPY /projects/pipeline_v3/start.sh /app/start.sh
RUN /app/start.sh

Certaines influencent directement d'autres instructions :

  • WORKDIR : modifie le répertoire de travail pour toutes les instructions suivantes.
  • USER : modifie l'utilisateur pour toutes les instructions suivantes
Présentation de Docker

WORKDIR - Modification du répertoire de travail

Démarrage de tous les chemins à la racine root du système de fichiers :

COPY /projects/pipeline_v3/ /app/

Devient encombré lorsque l'on travaille avec des chemins d'accès longs :

COPY /projects/pipeline_v3/ /home/my_user_with_a_long_name/work/projects/app/

Vous pouvez également utiliser WORKDIR :

WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Présentation de Docker

RUN dans le répertoire de travail actuel

Au lieu d'utiliser le chemin complet pour chaque commande :

RUN /home/repl/projects/pipeline/init.sh
RUN /home/repl/projects/pipeline/start.sh

Définissez WORKDIR :

WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
Présentation de Docker

Modification du comportement au démarrage avec WORKDIR

Au lieu d'utiliser le chemin complet :

CMD /home/repl/projects/pipeline/start.sh

Définissez WORKDIR :

WORKDIR /home/repl/projects/pipeline/
CMD start.sh

La commande prioritaire sera également exécutée dans WORKDIR :

docker run -it pipeline_image start.sh
Présentation de Docker

Autorisations Linux

  • Les autorisations sont attribuées aux utilisateurs.
  • Root est un utilisateur spécial disposant de toutes les autorisations.

$$

Bonne pratique

  • Utilisez root pour créer de nouveaux utilisateurs avec des autorisations pour des tâches spécifiques.
  • Cessez d'utiliser root.
Présentation de Docker

Modification de l'utilisateur dans une image

Bonne pratique : évitez d'exécuter toutes les tâches en tant que root.

Ubuntu -> root par défaut

FROM ubuntu         --> Root user by default
RUN apt-get update  --> Run as root

Instruction USER Dockerfile :

FROM ubuntu         --> Root user by default
USER repl           --> Changes the user to repl
RUN apt-get update  --> Run as repl
Présentation de Docker

Modification de l'utilisateur dans un conteneur

Dockerfile définissant l'utilisateur sur repl :

FROM ubuntu         --> Root user by default
USER repl           --> Changes the user to repl
RUN apt-get update  --> Run as repl 

Démarrera également les conteneurs avec l'utilisateur repl :

docker run -it ubuntu bash
repl@container: whoami
repl
Présentation de Docker

Récapitulatif

Utilisation Instruction Dockerfile
Modifier le répertoire de travail actuel WORKDIR <path>
Modifier l'utilisateur actuel USER <user-name>
Présentation de Docker

Il est temps de s'entraîner !

Présentation de Docker

Preparing Video For Download...