Gebruikers en werkmap wijzigen

Introductie tot Docker

Tim Sangster

Software Engineer @ DataCamp

Interactie tussen Dockerfile-instructies

FROM, RUN en COPY werken samen via het bestandssysteem.

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

Sommige beïnvloeden andere instructies direct:

  • WORKDIR: Wijzigt de werkmap voor alle volgende instructies
  • USER: Wijzigt de gebruiker voor alle volgende instructies
Introductie tot Docker

WORKDIR - Werkmap wijzigen

Alle paden starten vanaf de root van het bestandssysteem:

COPY /projects/pipeline_v3/ /app/

Wordt onoverzichtelijk met lange paden:

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

Gebruik anders WORKDIR:

WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Introductie tot Docker

RUN in de huidige werkmap

In plaats van telkens het volledige pad:

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

Stel WORKDIR in:

WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
Introductie tot Docker

Opstartgedrag wijzigen met WORKDIR

In plaats van het volledige pad:

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

Stel WORKDIR in:

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

Een override-commando draait ook in WORKDIR:

docker run -it pipeline_image start.sh
Introductie tot Docker

Linux-rechten

  • Rechten worden aan gebruikers toegekend.
  • Root is een speciale gebruiker met alle rechten.

$$

Best practice

  • Gebruik root om nieuwe gebruikers te maken met rechten voor specifieke taken.
  • Stop met root gebruiken.
Introductie tot Docker

Gebruiker wijzigen in een image

Best practice: Voer niet alles uit als root

Ubuntu -> standaard root

FROM ubuntu         --> Standaard root-gebruiker
RUN apt-get update  --> Draait als root

USER-instructie in Dockerfile:

FROM ubuntu         --> Standaard root-gebruiker
USER repl           --> Wijzigt gebruiker naar repl
RUN apt-get update  --> Draait als repl
Introductie tot Docker

Gebruiker wijzigen in een container

Dockerfile stelt de gebruiker in op repl:

FROM ubuntu         --> Standaard root-gebruiker
USER repl           --> Wijzigt gebruiker naar repl
RUN apt-get update  --> Draait als repl 

Start containers ook met gebruiker repl:

docker run -it ubuntu bash
repl@container: whoami
repl
Introductie tot Docker

Samenvatting

Gebruik Dockerfile-instructie
Huidige werkmap wijzigen WORKDIR <path>
Huidige gebruiker wijzigen USER <user-name>
Introductie tot Docker

Laten we oefenen!

Introductie tot Docker

Preparing Video For Download...