यूज़र और वर्किंग डायरेक्टरी बदलना

Docker परिचय

Tim Sangster

Software Engineer @ DataCamp

Dockerfile निर्देशों की इंटरैक्शन

FROM, RUN, और COPY फाइल सिस्टम के ज़रिए इंटरैक्ट करते हैं.

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

कुछ निर्देश सीधे दूसरों को प्रभावित करते हैं:

  • WORKDIR: अगले सभी निर्देशों के लिए वर्किंग डायरेक्टरी बदलता है
  • USER: अगले सभी निर्देशों के लिए यूज़र बदलता है
Docker परिचय

WORKDIR - वर्किंग डायरेक्टरी बदलना

सभी paths को फाइल सिस्टम के root से शुरू करना:

COPY /projects/pipeline_v3/ /app/

लंबे paths के साथ काम करते समय अव्यवस्थित हो जाता है:

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

वैकल्पिक रूप से, WORKDIR उपयोग करें:

WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Docker परिचय

मौजूदा वर्किंग डायरेक्टरी में RUN

हर कमांड के लिए पूरा path देने के बजाय:

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

WORKDIR सेट करें:

WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
Docker परिचय

WORKDIR से स्टार्टअप व्यवहार बदलना

पूरा path देने के बजाय:

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

WORKDIR सेट करें:

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

ओवरराइड किया गया कमांड भी WORKDIR में ही चलेगा:

docker run -it pipeline_image start.sh
Docker परिचय

Linux परमिशन्स

  • परमिशन्स यूज़र्स को असाइन होती हैं.
  • Root एक विशेष यूज़र है जिसके पास सभी परमिशन्स होती हैं.

$$

सर्वोत्तम प्रथा

  • विशेष कार्यों के लिए परमिशन्स के साथ नए यूज़र बनाने हेतु root उपयोग करें.
  • root का उपयोग बंद करें.
Docker परिचय

इमेज में यूज़र बदलना

सर्वोत्तम प्रथा: सब कुछ root के रूप में न चलाएँ

Ubuntu -> डिफ़ॉल्ट रूप से root

FROM ubuntu         --> डिफ़ॉल्ट रूप से Root यूज़र
RUN apt-get update  --> root के रूप में रन

USER Dockerfile निर्देश:

FROM ubuntu         --> डिफ़ॉल्ट रूप से Root यूज़र
USER repl           --> यूज़र repl पर बदलता है
RUN apt-get update  --> repl के रूप में रन
Docker परिचय

कंटेनर में यूज़र बदलना

Dockerfile में यूज़र repl सेट करना:

FROM ubuntu         --> डिफ़ॉल्ट रूप से Root यूज़र
USER repl           --> यूज़र repl पर बदलता है
RUN apt-get update  --> repl के रूप में रन 

कंटेनर भी repl यूज़र से शुरू होंगे:

docker run -it ubuntu bash
repl@container: whoami
repl
Docker परिचय

सारांश

उपयोग Dockerfile निर्देश
मौजूदा वर्किंग डायरेक्टरी बदलें WORKDIR <path>
मौजूदा यूज़र बदलें USER <user-name>
Docker परिचय

अब अभ्यास का समय!

Docker परिचय

Preparing Video For Download...