Mengubah pengguna dan direktori kerja

Pengantar Docker

Tim Sangster

Software Engineer @ DataCamp

Interaksi instruksi Dockerfile

FROM, RUN, dan COPY berinteraksi melalui sistem file.

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

Beberapa langsung memengaruhi instruksi lain:

  • WORKDIR: Mengubah direktori kerja untuk semua instruksi berikutnya
  • USER: Mengubah pengguna untuk semua instruksi berikutnya
Pengantar Docker

WORKDIR - Mengubah direktori kerja

Memulai semua path dari root sistem file:

COPY /projects/pipeline_v3/ /app/

Menjadi tidak rapi saat memakai path panjang:

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

Sebagai alternatif, gunakan WORKDIR:

WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Pengantar Docker

RUN di direktori kerja saat ini

Alih-alih memakai path penuh untuk setiap perintah:

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

Atur WORKDIR:

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

Mengubah perilaku startup dengan WORKDIR

Alih-alih memakai path penuh:

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

Atur WORKDIR:

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

Perintah override juga akan berjalan di WORKDIR:

docker run -it pipeline_image start.sh
Pengantar Docker

Izin Linux

  • Izin ditetapkan ke pengguna.
  • Root adalah pengguna khusus dengan semua izin.

$$

Praktik terbaik

  • Gunakan root untuk membuat pengguna baru dengan izin untuk tugas tertentu.
  • Hentikan penggunaan root.
Pengantar Docker

Mengubah pengguna di image

Praktik terbaik: Jangan jalankan semuanya sebagai root

Ubuntu -> root secara default

FROM ubuntu         --> Pengguna root secara default
RUN apt-get update  --> Berjalan sebagai root

Instruksi USER di Dockerfile:

FROM ubuntu         --> Pengguna root secara default
USER repl           --> Mengubah pengguna ke repl
RUN apt-get update  --> Berjalan sebagai repl
Pengantar Docker

Mengubah pengguna di container

Dockerfile yang mengatur pengguna ke repl:

FROM ubuntu         --> Pengguna root secara default
USER repl           --> Mengubah pengguna ke repl
RUN apt-get update  --> Berjalan sebagai repl 

Juga akan memulai container dengan pengguna repl:

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

Ringkasan

Penggunaan Instruksi Dockerfile
Ubah direktori kerja saat ini WORKDIR <path>
Ubah pengguna saat ini USER <user-name>
Pengantar Docker

Ayo berlatih!

Pengantar Docker

Preparing Video For Download...