Změna uživatele a pracovního adresáře

Introduction to Docker

Tim Sangster

Software Engineer @ DataCamp

Interakce instrukcí Dockerfile

FROM, RUN a COPY komunikují prostřednictvím souborového systému.

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

Některé instrukce ovlivňují ostatní přímo:

  • WORKDIR: Mění pracovní adresář pro všechny následující instrukce
  • USER: Mění uživatele pro všechny následující instrukce
Introduction to Docker

WORKDIR – změna pracovního adresáře

Začátek všech cest od kořene souborového systému:

COPY /projects/pipeline_v3/ /app/

Při dlouhých cestách se to stává nepřehledným:

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

Alternativně použijte WORKDIR:

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

RUN v aktuálním pracovním adresáři

Místo použití úplné cesty pro každý příkaz:

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

Nastavte WORKDIR:

WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
Introduction to Docker

Změna spouštěcího chování pomocí WORKDIR

Místo použití úplné cesty:

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

Nastavte WORKDIR:

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

Přepisující příkaz bude také spuštěn v WORKDIR:

docker run -it pipeline_image start.sh
Introduction to Docker

Oprávnění v Linuxu

  • Oprávnění jsou přiřazena uživatelům.
  • Root je speciální uživatel se všemi oprávněními.

$$

Osvědčená praxe

  • Používejte roota k vytváření nových uživatelů s oprávněními pro konkrétní úlohy.
  • Přestaňte používat roota.
Introduction to Docker

Změna uživatele v obrazu

Osvědčená praxe: Nespouštějte vše jako root

Ubuntu -> root ve výchozím nastavení

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

Instrukce USER v Dockerfile:

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

Změna uživatele v kontejneru

Dockerfile nastavující uživatele na repl:

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

Kontejnery budou také spouštěny jako uživatel repl:

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

Shrnutí

Použití Instrukce Dockerfile
Změna aktuálního pracovního adresáře WORKDIR <path>
Změna aktuálního uživatele USER <user-name>
Introduction to Docker

Čas na procvičení!

Introduction to Docker

Preparing Video For Download...