<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Linus Torvalds</title><link>https://virgool.ir/feed/@linux.world.kh</link><description></description><language>fa</language><pubDate>2026-11-12 00:36:53</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>Linus Torvalds</title><link>https://virgool.ir/@linux.world.kh</link></image><item><title>مفهوم container runtime</title><link>https://virgool.ir/@linux.world.kh/مفهوم-container-runtime-svesw3pv6dkt</link><description>کانتینر انجین به virtualization تو سطح سیستم عامل اشاره دارد. (البته virtualization یه مفهوم بزرگتری هست. کانتینر انجین میاد یه کانتینر میسازه. یعنی virtualization = کانتینر)سیستم عامل هایی که اجازه وجود داشتن چندین instance ایزوله شده رو میده.به هر instance یه کانتینر، virtualization engine یا jail میگن.دولوپرا از اونا برای ساختن محیط hosting امن و مجازی با منابع ایزوله شده استفاده میکنن.دولوپرا میتونن اپلیکیشن هاشون، برنامه هاشون یا حتی بخش هایی از کدشون رو از هم جدا بکنن (فکر کنم منظورش مفهوم میکروسرویس هست)این موضوع به کاهش هزینه رو در ۲ جا بدنبال داره:منابعفرآیند migrationمورد استفاده دیگه کانتینر ها نگهداری اپلیکیشن ها توی محیط امن هست که باعث افزایش فضا و بهره وری میشه.</description><category>Linus Torvalds</category><author>Linus Torvalds</author><pubDate>Sun, 01 Nov 2020 13:36:01 +0330</pubDate></item><item><title>افزایش و کاهش دادن منابع service از طریق داکر API</title><link>https://virgool.ir/@linux.world.kh/افزایش-و-کاهش-دادن-منابع-service-از-طریق-داکر-api-ivtemxnwwoms</link><description>آپدیت کردن سرویس از طریق داکر API پیچ و خم های خودش رو دارهبرای اینکه منابع یه سرویس رو کم یا زیاد بکنی باید به این اندپوینت ریکوئست بزنی.POST  /services/{id}/updateنکته مهم اینه:چونکه داری سرویس رو آپدیت میکنی باید همه چیزایی رو که وقت ساختن سرویس ست کرده بودی ست بکنی. برای تست به همین اندپوینت یه ریکوئست بزن ولی توش منابع رو ذکر نکن. سرویس همه منابع رو برای خودش میگیره و اصلا limitation ای در نظر نمیگیرهپس برای اینکه سرویس رو آپدیت بکنی باید توی json ای که مینویسی همه مقادیری رو که میخوای بدون تغییر بمونن باید ست بکنی.ست کردن IDاینجا id سرویس مورد نظر رو میدیکوئری پارامتر هااین سه مورد رو میتونی توی query string ست بکنی.ست کردن versionاینجا میای ورژن سرویسی رو که میخوای آپدیت بکنی مینویسی. نکته اینه که این ورژن، docker tag نیست. بلکه وقتی از سرویس inspect میگیری توی بدنه response بهش دسترسی داری: همون طوری که میبینی اینجا ورژنمون ۱۹ هست.نکته بعدی اینه که هر بار سرویس رو آپدیت میکنی این ورژن عوض میشه.ست کردن registryAuthFromاگه توی هدر x-registery-auth رو ست نکنی اینجا میتونی credentials رو مشخص کنی.ست کردن rollbackاگه این کوئری پارامتر رو ست بکنی همه تنظیمات سرویس به تنظیمات قبلیش بر میگرده.هدر هاست کردن هدر X-Registry-Authsample request body:{&#xA;  &#34;Name&#34;: &#34;top&#34;,&#xA;  &#34;TaskTemplate&#34;: {&#xA;    &#34;ContainerSpec&#34;: {&#xA;      &#34;Image&#34;: &#34;busybox&#34;,&#xA;      &#34;Args&#34;: [&#xA;        &#34;top&#34;&#xA;      ]&#xA;    },&#xA;    &#34;Resources&#34;: {&#xA;      &#34;Limits&#34;: {},&#xA;      &#34;Reservations&#34;: {}&#xA;    },&#xA;    &#34;RestartPolicy&#34;: {&#xA;      &#34;Condition&#34;: &#34;any&#34;,&#xA;      &#34;MaxAttempts&#34;: 0&#xA;    },&#xA;    &#34;Placement&#34;: {},&#xA;    &#34;ForceUpdate&#34;: 0&#xA;  },&#xA;  &#34;Mode&#34;: {&#xA;    &#34;Replicated&#34;: {&#xA;      &#34;Replicas&#34;: 1&#xA;    }&#xA;  },&#xA;  &#34;UpdateConfig&#34;: {&#xA;    &#34;Parallelism&#34;: 2,&#xA;    &#34;Delay&#34;: 1000000000,&#xA;    &#34;FailureAction&#34;: &#34;pause&#34;,&#xA;    &#34;Monitor&#34;: 15000000000,&#xA;    &#34;MaxFailureRatio&#34;: 0.15&#xA;  },&#xA;  &#34;RollbackConfig&#34;: {&#xA;    &#34;Parallelism&#34;: 1,&#xA;    &#34;Delay&#34;: 1000000000,&#xA;    &#34;FailureAction&#34;: &#34;pause&#34;,&#xA;    &#34;Monitor&#34;: 15000000000,&#xA;    &#34;MaxFailureRatio&#34;: 0.15&#xA;  },&#xA;  &#34;EndpointSpec&#34;: {&#xA;    &#34;Mode&#34;: &#34;vip&#34;&#xA;  }&#xA;}ریسپانساگه status code رو بهت ۲۰۰ داد همه چی اوکیه وگرنه مشکل داری. توی بدنه response هم Warnings رو داری.</description><category>Linus Torvalds</category><author>Linus Torvalds</author><pubDate>Mon, 26 Oct 2020 12:09:02 +0330</pubDate></item><item><title>داکر API و exec کردن داخل یه کانتینر</title><link>https://virgool.ir/@linux.world.kh/داکر-api-و-exec-کردن-داخل-یه-کانتینر-cafxzgstw5cx</link><description>برای اینکه یه کامندی رو تو یه کانتینر اجرا بکنی باید اول یه instance بسازی. تو مرحله بعدی اون instance رو start بکنی و بعدش خروجیشو دریاف بکنی.مرحله اول اجرای کامند توی یه کانتینرPOST /containers/{id}/execنام کانتینر یا ID کانتینر مورد نظرست کردن AttachStdinست کردن AttachStdoutست کردن AttachStderrست کردن  DetachKeysست کردن Ttyست کردن Envست کردن Cmdست کردن Privilegedست کردن Userست کردن WorkingDirاگه status code اش ۲۰۱ بود یعنی instance رو ساخته و توی بدنه response آی دی اون instance رو بهت بر میگردونه. در غیر این صورت هر status code دیگه ای بده مشکلی دارید.sample request body:{&#xA;  &#34;AttachStdin&#34;: false,&#xA;  &#34;AttachStdout&#34;: true,&#xA;  &#34;AttachStderr&#34;: true,&#xA;  &#34;DetachKeys&#34;: &#34;ctrl-p,ctrl-q&#34;,&#xA;  &#34;Tty&#34;: false,&#xA;  &#34;Cmd&#34;: [&#xA;    &#34;date&#34;&#xA;  ],&#xA;  &#34;Env&#34;: [&#xA;    &#34;FOO=bar&#34;,&#xA;    &#34;BAZ=quux&#34;&#xA;  ]&#xA;}sample response body:{&#xA;    &#34;Id&#34;: &#34;ead002f66434faf891b0ea361444c2322f7e656058a88348e66c5b810d8e2377&#34;&#xA;}مرحله دوم اجرای یه کامند/exec/{id}/startست کردن آی دی instance ایجاد شدهای دی بازگردانده شده از مرحله قبل رو بگیرید و به اندپوینت بالایی یه ریکوئست بزنید.ست کردن Detachست کردن Ttyاگه status code برگردونده شده ۲۰۰ بود همه چی اوکیه و توی بدنه response نتیجه اجرای کامند قرار داده شده است.sample request body:{&#xA;  &#34;Detach&#34;: false,&#xA;  &#34;Tty&#34;: false&#xA;}sample response body:</description><category>Linus Torvalds</category><author>Linus Torvalds</author><pubDate>Mon, 26 Oct 2020 11:19:01 +0330</pubDate></item><item><title>انواع شبکه در داکر</title><link>https://virgool.ir/@linux.world.kh/انواع-شبکه-در-داکر-s4so5pkim3ng</link><description>ما چند نوع شبکه داریم:nulloverlaybridgemacvlanhostفرض کنید ۳ تا کامپیوتر به یه مودم وصل شدن. IP ها ۱۹۲.۱۶۸.۱.۱، ۱۹۲.۱۶۸.۱.۲ و ۱۹۲.۱۶۸.۱.۳ هست. gateway این IP ها ۱۹۲.۱۶۸.۱.۱ هست (gateway میدونه که کدوم IP برای کی هست؛ به عبارت بهتر مودم ما 172.17.0.1/16اینجا همون gateway هست که DHCP و DNS هست).این شبکه‌ی ما private network هست که از طریق مودم به اینترنت وصل میشه. subnet mask این شبکه هم 24 هست که به این معنی هست که از ۱ تا ۲۵۴ میتونیم بهش IP بدیم؛ 192.168.1.0/24. پس اگه شما تو این شبکه بیای منو ping بکنی میتونی منو ببینی.حالا فرض کن IP من ۱۹۲.۱۶۸.۱.۱ تو این شبکه docker host هست. وقتی من میام توی داکر خودم یه کانتینر میسازم و استارتش میکنم این کانتینر از docker0 که IP اون 172.17.0.1/16 هست میاد IP میگیره. چرا این کارت شبکه؟ اصلا این docker0 چیه؟گفتیم که تو داکر چند نوع شبکه داریم، docker0 همون شبکه نوع bridge هست. حالا این docker0 همون gateway داکر هست که کانتینر ها از طریق اون بیرون میان. IP این کانتینر 172.17.0.2 هست.ولی وقتی که ما میایم چند تا docker host رو swarm بکنیم از شبکه نوع overlay استفاده میشه. اسم این نوع شبکه رو ingress میزارن.اینجوری بهش نگاه کنید ما میام یه ابر بین همه docker host ها میکشیم. IP هایی که به سرویس های ساخته شده توی داکر سوارم داده میشه از شبکه overlay، که به اسم ingress داخل داکر تعریف شده گرفته میشه. مثلا یه سرویس دیتابیس میسازی و IP این سرویس 10.0.0.14/24 میشه.حالا شما اگه بیای ping این سرویس رو از ۱۹۲.۱۶۸.۱.۲ (که توی docker swarm نیست) بگیری، ping نمیده. چرا؟ چونکه اون IP بیرون نیومده؛ یعنی به gateway داکر معرفی نکردیش. به همین دلیل ping نمیده. نکته: ping گرفتن با ارسال درخواست http فرق داره.ممکنه شما یه پورت از اون سرویس expose کرده باشی. یعنی به داکر گفتی که تو تموم سطوح اشغالش بکنی.</description><category>Linus Torvalds</category><author>Linus Torvalds</author><pubDate>Wed, 21 Oct 2020 20:25:10 +0330</pubDate></item><item><title>چند کلام در مورد systemd تو دنیای لینوکس</title><link>https://virgool.ir/@linux.world.kh/چند-کلام-در-مورد-systemd-تو-دنیای-لینوکس-autd0p69jpoo</link><description> این بخش مربوط به ماژول 101.3 دوره LPIC هست. که اینجا آوردمش. حالا من خودم خیلی با سیستم آموزش LPIC حال نمی‌کنم. به همین دلیل این بخشش رو که خیلی به کار خودم اومده می‌خوام بگم.کل سیستم وقتی میخواد بیاد بالا تو وضعیت های مختلفی میره. یعنی برخلاف ویندوز runlevel های مختلفی داره:وضعیت ۰: خاموشوضعیت ۱: مد ریکاوری (تک کاربره)وضعیت ۲: مد چند کاربره بدون نتورکوضعیت ۳: مد چند کاربره با نتورکوضعیت ۴: تعریف نشده. هر کاری که دوست داشتی می‌تونی تو این مد خودت تعریف بکنی تا انجام بدهوضعیت ۵: تو اینجا تازه GUI و بند و بساطش بالا میادوضعیت ۶: ریبوت کردن سیستمتو یه سیستم لینوکسی اولین پروسه ای که اجرا میشه init هست. init بقیه پروسه ها رو مدیریت میکنی. البته اگه سیستمت systemd باشه مثل عکس زیر. اون .قت اولین پروسه رو systemd مینوسهخب پس شما از ۳ طریق می‌تونید تو systemd سرویس ها رو دستکاری بکنید:از طریق دایرکتوری /etc/init.d/ (البته تو این دایرکتوری بعضی سرویس ها نیستن. چرا؟ نمیدونم)از طریق کامند serviceاز طریق کامند systemctl</description><category>Linus Torvalds</category><author>Linus Torvalds</author><pubDate>Mon, 05 Oct 2020 16:57:27 +0330</pubDate></item></channel></rss>