Zmiana użytkownika i katalogu roboczego

Wprowadzenie do Dockera

Tim Sangster

Software Engineer @ DataCamp

Interakcje instrukcji Dockerfile

FROM, RUN i COPY współdziałają przez system plików.

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

Niektóre instrukcje wpływają bezpośrednio na inne:

  • WORKDIR: Zmienia katalog roboczy dla wszystkich kolejnych instrukcji
  • USER: Zmienia użytkownika dla wszystkich kolejnych instrukcji
Wprowadzenie do Dockera

WORKDIR – zmiana katalogu roboczego

Rozpoczynanie wszystkich ścieżek od katalogu głównego:

COPY /projects/pipeline_v3/ /app/

Długie ścieżki stają się nieczytelne:

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

Alternatywnie użyj WORKDIR:

WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Wprowadzenie do Dockera

RUN w bieżącym katalogu roboczym

Zamiast używać pełnej ścieżki w każdym poleceniu:

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

Ustaw WORKDIR:

WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
Wprowadzenie do Dockera

Zmiana zachowania startowego z WORKDIR

Zamiast używać pełnej ścieżki:

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

Ustaw WORKDIR:

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

Nadpisane polecenie również zostanie uruchomione w WORKDIR:

docker run -it pipeline_image start.sh
Wprowadzenie do Dockera

Uprawnienia w systemie Linux

  • Uprawnienia są przypisywane użytkownikom.
  • Root to specjalny użytkownik z pełnymi uprawnieniami.

$$

Najlepsza praktyka

  • Używaj roota do tworzenia użytkowników z uprawnieniami do określonych zadań.
  • Przestań używać roota.
Wprowadzenie do Dockera

Zmiana użytkownika w obrazie

Najlepsza praktyka: Nie uruchamiaj wszystkiego jako root

Ubuntu -> root domyślnie

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

Instrukcja USER w Dockerfile:

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

Zmiana użytkownika w kontenerze

Dockerfile ustawiający użytkownika na repl:

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

Kontenery będą również uruchamiane jako użytkownik repl:

docker run -it ubuntu bash
repl@container: whoami
repl
Wprowadzenie do Dockera

Podsumowanie

Zastosowanie Instrukcja Dockerfile
Zmiana bieżącego katalogu roboczego WORKDIR <path>
Zmiana bieżącego użytkownika USER <user-name>
Wprowadzenie do Dockera

Czas na ćwiczenia!

Wprowadzenie do Dockera

Preparing Video For Download...