Docker
(۵۵ ویرایش میانی توسط ۲ کاربر نشان داده نشدهاست) | |||
سطر ۴: | سطر ۴: | ||
<div dir=rtl lang=fa> | <div dir=rtl lang=fa> | ||
− | = Docker = | + | = '''Docker''' = |
− | + | ==Difference between Docker and VM== | |
، Docker هیچ سیستم عامل جدیدی ایجاد نمی کند بلکه این امکان را به بسته نرم افزاری ایجاد شده می دهد که از Kernel اصلی سیستم عامل لینوکسی که بر روی آن نصب شده است استفاده کند و در زمان انتقال نیز فقط Package نرم افزاری منتقل می شود نه ماشین مجازی ، در واقع Docker Engine یا موتور اصلی Docker جایگزین نرم افزار Hypervisor ما می شود و اینکار یعنی کارایی سیستم ما به شدت افزایش می یابد زیرا یک لایه واسط به نام Hypervisor حذف شده و نرم افزار بصورت مستقیم با هسته اصلی سیستم عامل کار میکند با این تفاوت که کاملا ایزوله شده است. | ، Docker هیچ سیستم عامل جدیدی ایجاد نمی کند بلکه این امکان را به بسته نرم افزاری ایجاد شده می دهد که از Kernel اصلی سیستم عامل لینوکسی که بر روی آن نصب شده است استفاده کند و در زمان انتقال نیز فقط Package نرم افزاری منتقل می شود نه ماشین مجازی ، در واقع Docker Engine یا موتور اصلی Docker جایگزین نرم افزار Hypervisor ما می شود و اینکار یعنی کارایی سیستم ما به شدت افزایش می یابد زیرا یک لایه واسط به نام Hypervisor حذف شده و نرم افزار بصورت مستقیم با هسته اصلی سیستم عامل کار میکند با این تفاوت که کاملا ایزوله شده است. | ||
+ | [[پرونده:D4.png|center]] | ||
+ | |||
+ | |||
+ | |||
در تصویر بالا هم در داکر و هم در ماشین مجازی دو عنصور Server، Host Os مشترک است. | در تصویر بالا هم در داکر و هم در ماشین مجازی دو عنصور Server، Host Os مشترک است. | ||
در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوتها از اینجا شروع میشود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عاملهای سنگین و پیچیده میتوان نرم افزارها را روی آن نصب و تست کرد. | در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوتها از اینجا شروع میشود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عاملهای سنگین و پیچیده میتوان نرم افزارها را روی آن نصب و تست کرد. | ||
هرچند میتوان نسخه کوچکی از نسخههای مختلف سیستم عامل را نیز نصب کرد ولی باز هم بسیار راحت تر از سیستم ماشینهای مجازی است. از مزایای استفاده از داکر نسبت به مجازی ساز میتوان به موارد زیر اشاره کرد: | هرچند میتوان نسخه کوچکی از نسخههای مختلف سیستم عامل را نیز نصب کرد ولی باز هم بسیار راحت تر از سیستم ماشینهای مجازی است. از مزایای استفاده از داکر نسبت به مجازی ساز میتوان به موارد زیر اشاره کرد: | ||
ایجاد و حذف بسیار سریع Container ها | ایجاد و حذف بسیار سریع Container ها | ||
− | ریستارت و خاموش کردن بسیار | + | ریستارت و خاموش کردن بسیار سریعنحوه راه اندازی سرور registry hub |
انتقال پذیری راحت و سبک | انتقال پذیری راحت و سبک | ||
مدیریت منابع و ریسورسها به صورت قدرتمند و متغیر | مدیریت منابع و ریسورسها به صورت قدرتمند و متغیر | ||
سطر ۲۰: | سطر ۲۴: | ||
'''داکر Image:''' | '''داکر Image:''' | ||
+ | |||
+ | [[پرونده:D5.png]] | ||
در داکر Imageها را پس از دریافت اجرا میکنیم. همانطور که در بالا میبینید یک Base Image مانند Debian روی این داکر نصب شده است و روی آن Imageهای دیگر را نصب کرده ایم. | در داکر Imageها را پس از دریافت اجرا میکنیم. همانطور که در بالا میبینید یک Base Image مانند Debian روی این داکر نصب شده است و روی آن Imageهای دیگر را نصب کرده ایم. | ||
سطر ۳۳: | سطر ۳۹: | ||
+ | ''' debian Installation''' | ||
− | + | برای نصب لازم است دو هارد جداگانه در نظر گرفته شود. در هارد اول میتوانید debian را نصب کرده و هارد دوم را به دایرکتوری زیر mount کنید. از شکل زیر پیروی کنید. | |
− | |||
− | + | پس از پارتیشن بندی به روش فوق, docker را نصب نمایید. | |
− | + | == Docker Installation== | |
+ | برای نصب لازم است ابتدا package های مورد نیاز را نصب کنیم. برای این کار دستور زیر را وارد میکنیم: | ||
+ | </div> | ||
+ | <div dir=ltr lang=en> | ||
− | + | ''' apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common ''' | |
− | + | </div> | |
+ | حال کلید رسمی منتشر شده از سایت docker را اضافه میکنیم. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Add Docker’s official GPG key: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
<div dir=ltr lang=en> | <div dir=ltr lang=en> | ||
− | + | ''' curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - ''' | |
</div> | </div> | ||
− | + | حال repository مورد نیاز برای نصب docker را اضافه مینماییم. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> | ||
− | |||
− | |||
<div dir=ltr lang=en> | <div dir=ltr lang=en> | ||
− | |||
− | |||
− | ''' | + | ''' add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" ''' |
− | |||
− | |||
− | |||
− | |||
</div> | </div> | ||
− | + | سپس با دستورات زیرریپوزیتوری سیستم را به روز رسانی میکنیم | |
+ | |||
<div dir=ltr lang=en> | <div dir=ltr lang=en> | ||
− | + | ''' apt-get update ''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | + | سپس با دستورات زیرdocker را نصب میکنیم | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
<div dir=ltr lang=en> | <div dir=ltr lang=en> | ||
− | + | ''' apt-get install docker-ce ''' | |
− | + | ||
− | + | </div>نحوه راه اندازی سرور registry hub | |
+ | |||
+ | حال میتوانید docker-compose را نصب نمایید | ||
<div dir=ltr lang=en> | <div dir=ltr lang=en> | ||
− | + | curl -L https://github.com/docker/compose/releases/download/1.13.0/ | |
− | + | docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose | |
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''دانلود ایمیج از parspooyesh hub''' | |
− | + | تنظیمات سرور | |
− | + | همچنین فایل زیر را باز نمایید | |
− | + | <div dir=ltr lang=en> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ''' Vim /etc/docker/daemon.json''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | + | و کد زیر را در آن اضافه نمایید | |
− | <div dir=ltr lang=en> | + | <div dir=ltr lang=en> |
− | |||
+ | { | ||
+ | "insecure-registries": ["5.202.129.64:5000"] | ||
+ | } | ||
+ | |||
</div> | </div> | ||
− | |||
+ | استفاده از docker-compose برای اجرای docker ibs | ||
+ | در فولدر home یوزر خود فولدری به نام dockerCompose ایجاد نمایید. و فایلی به نام docker-compose.yml در آن ایجاد نمایید | ||
+ | در این فایل کد زیر را وارد کنید | ||
+ | [[پرونده:D1.png]] | ||
− | + | [[پرونده:D2.png]] | |
− | |||
− | + | ||
+ | حال برای اجرای containerدستور زیر را وارد میکنیم | ||
− | < | + | <div dir=ltr lang=en> |
− | + | ||
− | + | ''' docker-compose up -d ''' | |
− | + | ||
− | ''' | + | دستور نمایش میدهد که هر دو سرور به درستی up شده است و تمامی پرت ها به سمت کانتینر ها باز است. |
+ | در صورتی که یکی از سرورها down یا stop است با دستور زیر میتوان آن را UP کرد | ||
+ | |||
+ | docker-compose start <server name> | ||
+ | که در آن <server name> نام سروری است که قرار است up شود. | ||
+ | |||
+ | |||
</div> | </div> | ||
− | |||
+ | این دستور باید containerهای تعریف شده را اجرا بنماید. | ||
+ | |||
+ | برای چک کردن up شدن از دستور زیر استفاده کنید | ||
+ | <div dir=ltr lang=en> | ||
− | + | ''' Docker-compose ps ''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | ''' | + | |
</div> | </div> | ||
− | + | و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است. | |
− | + | ||
− | + | حال کافی است لایسنس را به روش عادی به روز نماییم. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
نسخهٔ کنونی تا ۸ ژوئیهٔ ۲۰۱۷، ساعت ۱۳:۵۹
محتویات |
[ویرایش] Docker
[ویرایش] Difference between Docker and VM
، Docker هیچ سیستم عامل جدیدی ایجاد نمی کند بلکه این امکان را به بسته نرم افزاری ایجاد شده می دهد که از Kernel اصلی سیستم عامل لینوکسی که بر روی آن نصب شده است استفاده کند و در زمان انتقال نیز فقط Package نرم افزاری منتقل می شود نه ماشین مجازی ، در واقع Docker Engine یا موتور اصلی Docker جایگزین نرم افزار Hypervisor ما می شود و اینکار یعنی کارایی سیستم ما به شدت افزایش می یابد زیرا یک لایه واسط به نام Hypervisor حذف شده و نرم افزار بصورت مستقیم با هسته اصلی سیستم عامل کار میکند با این تفاوت که کاملا ایزوله شده است.
در تصویر بالا هم در داکر و هم در ماشین مجازی دو عنصور Server، Host Os مشترک است. در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوتها از اینجا شروع میشود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عاملهای سنگین و پیچیده میتوان نرم افزارها را روی آن نصب و تست کرد. هرچند میتوان نسخه کوچکی از نسخههای مختلف سیستم عامل را نیز نصب کرد ولی باز هم بسیار راحت تر از سیستم ماشینهای مجازی است. از مزایای استفاده از داکر نسبت به مجازی ساز میتوان به موارد زیر اشاره کرد: ایجاد و حذف بسیار سریع Container ها ریستارت و خاموش کردن بسیار سریعنحوه راه اندازی سرور registry hub انتقال پذیری راحت و سبک مدیریت منابع و ریسورسها به صورت قدرتمند و متغیر و …
داکر Image:
در داکر Imageها را پس از دریافت اجرا میکنیم. همانطور که در بالا میبینید یک Base Image مانند Debian روی این داکر نصب شده است و روی آن Imageهای دیگر را نصب کرده ایم. Imageها پس از پایان به حالت اولیه خود باز میگردند چون همانطور از نام آنها مشخص است تنها یک تصویری از پکیج اصلی هستند. برای حذف تغییرات Image میتوان حالت آنها را با دستورات خاصی ذخیره کرد.
Docker Hub چیست؟
یک سرویس اشتراک گذاری تهیه شده توسط شرکت Docker است که شامل مخزنی از imageهای آماده برای Docker است. این مخزن حاوی دهها هزار برنامه و سیستم عامل است که میتوان به آن imageهایی را هم اضافه کرد. توجه کنید که شرکت پارس پویش دارای hub مخصوص به خود است.
Docker Container:
در واقع میتوان گفت Container ظرفی است که Imageها را در آن اجرا میکنند. Containerها از روی Imageها ایجاد میشوند و به وظایف خود عمل میکنند. مثلا فرض کنید از یک Centos چند Container میسازیم و در هر کدام تغییرات متفاوتی اعمال میکنیم.
debian Installation
برای نصب لازم است دو هارد جداگانه در نظر گرفته شود. در هارد اول میتوانید debian را نصب کرده و هارد دوم را به دایرکتوری زیر mount کنید. از شکل زیر پیروی کنید.
پس از پارتیشن بندی به روش فوق, docker را نصب نمایید.
[ویرایش] Docker Installation
برای نصب لازم است ابتدا package های مورد نیاز را نصب کنیم. برای این کار دستور زیر را وارد میکنیم:
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
حال کلید رسمی منتشر شده از سایت docker را اضافه میکنیم.
Add Docker’s official GPG key:
</div>
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
حال repository مورد نیاز برای نصب docker را اضافه مینماییم.
</div>
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
سپس با دستورات زیرریپوزیتوری سیستم را به روز رسانی میکنیم
apt-get update
سپس با دستورات زیرdocker را نصب میکنیم
apt-get install docker-ce
حال میتوانید docker-compose را نصب نمایید
curl -L https://github.com/docker/compose/releases/download/1.13.0/ docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
دانلود ایمیج از parspooyesh hub
تنظیمات سرور
همچنین فایل زیر را باز نمایید
Vim /etc/docker/daemon.json
و کد زیر را در آن اضافه نمایید
{ "insecure-registries": ["5.202.129.64:5000"] }
استفاده از docker-compose برای اجرای docker ibs در فولدر home یوزر خود فولدری به نام dockerCompose ایجاد نمایید. و فایلی به نام docker-compose.yml در آن ایجاد نمایید در این فایل کد زیر را وارد کنید
حال برای اجرای containerدستور زیر را وارد میکنیم
docker-compose up -d
دستور نمایش میدهد که هر دو سرور به درستی up شده است و تمامی پرت ها به سمت کانتینر ها باز است. در صورتی که یکی از سرورها down یا stop است با دستور زیر میتوان آن را UP کرد
docker-compose start <server name> که در آن <server name> نام سروری است که قرار است up شود.
این دستور باید containerهای تعریف شده را اجرا بنماید.
برای چک کردن up شدن از دستور زیر استفاده کنید
Docker-compose ps
و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است.
حال کافی است لایسنس را به روش عادی به روز نماییم.