، اسان جو سي ٽي او، ڊوڪر کي پيار ڪري ٿو، فعال طور تي استعمال ڪري ٿو، ۽ ان کي فروغ ڏئي ٿو. پنهنجي نئين مضمون ۾، هو وضاحت ڪري ٿو ته ڊوڪر ۾ استعمال ڪندڙ ڪيئن ٺاهجن، انهن سان صحيح طريقي سان ڪيئن ڪم ڪجي، صارفين کي روٽ طور ڇو نه ڇڏيو وڃي، ۽ بي ترتيب ڊوڪر فائل اشارن کي ڪيئن حل ڪجي.
ڪنٽينر ۾ سڀ عمل روٽ استعمال ڪندڙ جي طور تي هلندا جيستائين خاص طور تي بيان نه ڪيو ويو هجي. اهو تمام آسان لڳي ٿو، ڇاڪاڻ ته هن استعمال ڪندڙ تي ڪا به پابندي ناهي. اهو ئي سبب آهي جو روٽ طور هلائڻ هڪ سيڪيورٽي خطرو آهي. جڏهن ته ڪو به پنهنجي صحيح ذهن ۾ مقامي ڪمپيوٽر تي روٽ طور عمل نه ٿو هلائي، ڪيترائي ماڻهو ڪنٽينر ۾ روٽ طور عمل هلائيندا آهن.
هميشه اهڙا بگ هوندا آهن جيڪي مالويئر کي ڪنٽينر مان نڪرڻ ۽ هوسٽ ڪمپيوٽر ۾ داخل ٿيڻ جي اجازت ڏيندا آهن. بدترين فرض ڪندي، اسان کي پڪ ڪرڻ گهرجي ته ڪنٽينر اندر عمل هڪ صارف جي تحت هلايا وڃن جنهن کي هوسٽ مشين تي ڪو به حق نه آهي.
صارف ٺاهڻ
ڪنٽينر ۾ يوزر ٺاهڻ لينڪس ڊسٽريبيوشن ۾ يوزر ٺاهڻ کان مختلف ناهي. جڏهن ته، مختلف بنيادي تصويرن لاءِ ڪمانڊ مختلف ٿي سگهن ٿا.
ڊيبين تي ٻڌل ورڇن لاءِ، توهان کي ڊاڪر فائل ۾ هيٺيان شامل ڪرڻ جي ضرورت آهي:
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
