Changer d'utilisateur et de répertoire de travail

Introduction à 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 les suivantes :

  • WORKDIR : change le répertoire de travail pour toutes les instructions suivantes
  • USER : change l'utilisateur pour toutes les instructions suivantes
Introduction à Docker

WORKDIR – Changer le répertoire de travail

Commencer tous les chemins à la racine du système de fichiers :

COPY /projects/pipeline_v3/ /app/

Devient encombrant avec des chemins longs :

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

Sinon, utilisez WORKDIR :

WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Introduction à Docker

RUN dans le répertoire de travail courant

Plutôt que d'utiliser le chemin complet à 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
Introduction à Docker

Modifier le 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

Une commande de remplacement s'exécutera aussi dans WORKDIR :

docker run -it pipeline_image start.sh
Introduction à Docker

Permissions Linux

  • Les permissions sont attribuées aux utilisateurs.
  • Root est un utilisateur spécial avec tous les droits.

$$

Bonne pratique

  • Utilisez root pour créer des utilisateurs avec les permissions requises pour des tâches précises.
  • Cessez ensuite d'utiliser root.
Introduction à Docker

Changer d'utilisateur dans une image

Bonne pratique : n'exécutez pas tout en root

Ubuntu -> root par défaut

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

Instruction USER dans le Dockerfile :

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

Changer d'utilisateur dans un conteneur

Dockerfile qui définit 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 aussi les conteneurs avec l'utilisateur repl :

docker run -it ubuntu bash
repl@container: whoami
repl
Introduction à Docker

Résumé

Usage Instruction Dockerfile
Changer le répertoire de travail courant WORKDIR <path>
Changer l'utilisateur courant USER <user-name>
Introduction à Docker

Passons à la pratique !

Introduction à Docker

Preparing Video For Download...