Docker ۾ استعمال ڪندڙ

اينڊري ڪوپيلوف، اسان جو سي ٽي او، ڊوڪر کي پيار ڪري ٿو، فعال طور تي استعمال ڪري ٿو، ۽ ان کي فروغ ڏئي ٿو. پنهنجي نئين مضمون ۾، هو وضاحت ڪري ٿو ته ڊوڪر ۾ استعمال ڪندڙ ڪيئن ٺاهجن، انهن سان صحيح طريقي سان ڪيئن ڪم ڪجي، صارفين کي روٽ طور ڇو نه ڇڏيو وڃي، ۽ بي ترتيب ڊوڪر فائل اشارن کي ڪيئن حل ڪجي.

ڪنٽينر ۾ سڀ عمل روٽ استعمال ڪندڙ جي طور تي هلندا جيستائين خاص طور تي بيان نه ڪيو ويو هجي. اهو تمام آسان لڳي ٿو، ڇاڪاڻ ته هن استعمال ڪندڙ تي ڪا به پابندي ناهي. اهو ئي سبب آهي جو روٽ طور هلائڻ هڪ سيڪيورٽي خطرو آهي. جڏهن ته ڪو به پنهنجي صحيح ذهن ۾ مقامي ڪمپيوٽر تي روٽ طور عمل نه ٿو هلائي، ڪيترائي ماڻهو ڪنٽينر ۾ روٽ طور عمل هلائيندا آهن.

هميشه اهڙا بگ هوندا آهن جيڪي مالويئر کي ڪنٽينر مان نڪرڻ ۽ هوسٽ ڪمپيوٽر ۾ داخل ٿيڻ جي اجازت ڏيندا آهن. بدترين فرض ڪندي، اسان کي پڪ ڪرڻ گهرجي ته ڪنٽينر اندر عمل هڪ صارف جي تحت هلايا وڃن جنهن کي هوسٽ مشين تي ڪو به حق نه آهي.

صارف ٺاهڻ

ڪنٽينر ۾ يوزر ٺاهڻ لينڪس ڊسٽريبيوشن ۾ يوزر ٺاهڻ کان مختلف ناهي. جڏهن ته، مختلف بنيادي تصويرن لاءِ ڪمانڊ مختلف ٿي سگهن ٿا.

ڊيبين تي ٻڌل ورڇن لاءِ، توهان کي ڊاڪر فائل ۾ هيٺيان شامل ڪرڻ جي ضرورت آهي:

RUN groupadd --gid 2000 node 
  && useradd --uid 2000 --gid node --shell /bin/bash --create-home node

الپائن لاءِ:

RUN addgroup -g 2000 node 
    && adduser -u 2000 -G node -s /bin/sh -D node

صارف جي طور تي عمل هلائڻ

UID 2000 سان صارف جي طور تي سڀني ايندڙ عملن کي هلائڻ لاءِ، هلايو:

USER 2000

نوڊ استعمال ڪندڙ جي طور تي سڀني ايندڙ عملن کي هلائڻ لاءِ، هلايو:

USER node

وڌيڪ پڙهو ۾ دستاويز.

حجم لڳائڻ

ڪنٽينر اندر واليوم لڳائڻ وقت، پڪ ڪريو ته استعمال ڪندڙ فائلون پڙهي ۽/يا لکي سگهي ٿو. اهو ڪرڻ لاءِ، ڪنٽينر اندر استعمال ڪندڙ جو UID (GID) ۽ ڪنٽينر کان ٻاهر استعمال ڪندڙ جنهن وٽ مناسب فائل رسائي جا حق آهن، انهن کي ملائڻ گهرجي. استعمال ڪندڙ نالا غير لاڳاپيل آهن.

گهڻو ڪري لينڪس ڪمپيوٽر تي، هڪ صارف جو UID ۽ GID 1000 هوندا آهن. اهي سڃاڻپ ڪندڙ ڪمپيوٽر جي پهرين استعمال ڪندڙ کي تفويض ڪيا ويندا آهن.

توهان جي سڃاڻپ ڳولڻ آسان آهي:

id

توهان کي پنهنجي استعمال ڪندڙ بابت جامع معلومات ملندي.
مثالن مان 2000 کي پنھنجي ID سان تبديل ڪريو ۽ توھان ٺيڪ ٿي ويندا.

استعمال ڪندڙ کي UID ۽ GID تفويض ڪرڻ

جيڪڏهن استعمال ڪندڙ اڳ ۾ ٺاهيو ويو هو، پر توهان کي سڃاڻپ ڪندڙ تبديل ڪرڻ جي ضرورت آهي، ته توهان اهو هن طرح ڪري سگهو ٿا:

RUN usermod -u 1000 node 
  && groupmod -g 1000 node

جيڪڏهن توهان الپائن بيس تصوير استعمال ڪري رهيا آهيو، ته توهان کي شيڊو پيڪيج انسٽال ڪرڻو پوندو:

RUN apk add —no-cache shadow

تصوير ٺاهڻ وقت ڪنٽينر اندر يوزر آئي ڊي پاس ڪرڻ

جيڪڏهن توهان جي يوزر آئي ڊي ۽ پروجيڪٽ تي ڪم ڪندڙ سڀني ماڻهن جي يوزر آئي ڊي هڪجهڙي آهي، ته پوءِ ڊاڪر فائل ۾ هن آئي ڊي جي وضاحت ڪرڻ ڪافي آهي. جڏهن ته، يوزر آئي ڊي اڪثر ڪري نه ملندا آهن.

اهو فوري طور تي واضح ناهي ته توهان جيڪو چاهيو ٿا اهو ڪيئن حاصل ڪجي. منهنجي لاءِ، اهو ڊاڪر تي عبور حاصل ڪرڻ جو سڀ کان ڏکيو حصو هو. ڪيترائي ڊاڪر استعمال ڪندڙ اهو نٿا سمجهن ته تصوير جي عمر ۾ مختلف مرحلا آهن. شروعات ۾، هڪ تصوير ڊاڪر فائل استعمال ڪندي ٺاهي ويندي آهي. جڏهن تصوير مان هڪ ڪنٽينر لانچ ڪيو ويندو آهي، ته ڊاڪر فائل هاڻي استعمال نه ٿيندي آهي.

جڏهن تصوير ٺاهي ويندي آهي ته استعمال ڪندڙ ٺاهڻ گهرجن. اهو صارف کي طئي ڪرڻ تي پڻ لاڳو ٿئي ٿو ته ڪهڙي عمل تحت شروع ڪيا ويندا آهن. ان جو مطلب آهي ته اسان کي ڪنهن نه ڪنهن طرح UID (GID) کي ڪنٽينر ۾ منتقل ڪرڻ گهرجي.

ڊاڪر فائل ۾ ٻاهرين متغيرن کي استعمال ڪرڻ لاءِ، هدايتون استعمال ڪريو اين وي и آر ڊيهدايتن جو تفصيلي مقابلو هتي.

Dockerfile

ARG UID=1000
ARG GID=1000
ENV UID=${UID}
ENV GID=${GID}
RUN usermod -u $UID node 
  && groupmod -g $GID node

توهان docker-compose ذريعي هن طرح دليل پاس ڪري سگهو ٿا:

ڊڪر ٺاهيندڙ

build:
  context: ./src/backend
  args:
    UID: 1000
    GID: 1000

پي. ايس. ڊاڪر جي سڀني پيچيدگين تي عبور حاصل ڪرڻ لاءِ، دستاويز يا مضمون پڙهڻ ڪافي ناهي. توهان کي تمام گهڻي مشق ۽ ڊاڪر لاءِ احساس جي ضرورت آهي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو