انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: ! در 08 اردیبهشت 1394، 10:11 قظ
-
سلام
در مورد داکر همیشه میگن که برخلاف سیستمهایی مثل واگرانت که با ماشین مجازی یک سیتم عامل دیگه رو راه اندازی و مدیریت میکنه، از کانتینر استفاده میکنه در لینوکس که از همون کرنل نصب شده روی سیستم استفاده میکنه.
کانتینرا تو لینوکس چی ان و چجوری کار میکنن؟
-
اگر اشتباه نکنم container ها از توابع cgroupکه در کرنل لینوکس تعبیه شده برای ایجاد محدودیت در واگذاری منابع (فایل ، رم و هاردو...) استفاده میکنند.
-
یه نگاهی به این بنداز
https://linuxcontainers.org/ (https://linuxcontainers.org/)
سایت container های لینوکس
-
در لینوکس چند تا قابلیت وجود داره مثل cgroups و namespace isolation که با استفاده از اونها شما می تونید یک سری پروسس رو گروه بندی کنید و طوری اجرا کنید که مثلا روی یک سیستم با 8 گیک رم و cpu با سرعت 3 گیگاهرتز فکر کنند سیستم 1 گیگ رم بیشتر نداره و cpu هم سرعتش 500 مگاهرتزه که این قسمت رو cgroups انجام میده.حالا اگه چند تا گروه از این پروسسها وجود داشته باشن namespace isolation کارش اینکه این پروسسها نتونن منابعی که توسط سایر گروهها استفاده میشن رو ببینن مثلا اگه در یک گروه pid یک پروسس 100 باشه در یک گروه دیگه هم یک پروسس می تونه همین pid رو داشته باشده در حالی در حالت عادی pid باید یونیک باشه.
حالا با استفاده از تمام موارد بالا به اضافه یه سری چیزای دیگه می تونید کانتینرهایی بسازید که یک برنامه مثلا mysql کاملا مجزا از سایر قسمتهای دیگه سیستم اجرا بشه و می تونید این کانتینر رو 10 بار روی یک سیستم اجرا کنید بدون اینکه هیچ کدومشون از وجود اون یکی مطلع باشه یا کانفیگشون قاطی بشه.
اگه وقت بشه شاید یه مقاله کامل در این مورد بنویسم که معمولا هم وقت نمیشه!
-
البته خود واگرانت هم میتونه با داکر کار کنه!
مفهوم کانتینر در برابر ماشین مجازیه. در کاتینرها از کرنل میزبان و فایلسیستم مهمان استفاده میشه.
سادهترین نوعش همون chroot خودمونه. پیچدههاش هم که مثل لکسدی و اینها میشن: http://www.ubuntu.com/cloud/tools/lxd