Docker

از ویکی پارس پویش
ویرایش در تاریخ ‏۲۱ ژوئن ۲۰۱۷، ساعت ۰۹:۵۶ توسط Siavash (بحث | مشارکت‌ها)

پرش به: ناوبری, جستجو

محتویات

Docker

تفاوت داکر و 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

برای نصب لازم است دو هارد جداگانه در نظر گرفته شود. در هارد اول میتوانید debian را نصب کرده و هارد دوم را به دایرکتوری زیر mount کنید. از شکل زیر پیروی کنید.



پس از پارتیشن بندی به روش فوق, docker را نصب نمایید.

نصب docker

برای نصب لازم است ابتدا 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  
نحوه راه اندازی سرور registry hub

حال میتوانید 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 

chmod +x /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 در آن ایجاد نمایید در این فایل کد زیر را وارد کنید

D1.png

D2.png


حال برای اجرای container‌دستور زیر را وارد میکنیم

   docker-compose up -d   

این دستور باید containerهای تعریف شده را اجرا بنماید.

برای چک کردن up شدن از دستور زیر استفاده کنید

  Docker-compose ps   

و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است.

حال کافی است لایسنس را به روش عادی به روز نماییم.


دستورات مفید برای مدیریت docker-compose

برای خاموش کردن سرورها.

  docker-compose  stop   
برای روشن کردن سرورها.


  docker-compose  start   
برای اجرای سرورها (معادل run در docker)
  docker-compose  up -d   
برای اجرای حذف سرورها (معادل rm در docker).
  docker-compose  down  


برای مشاهده سرورهای موجود

  docker-compose  ps   


برای مشاهده میزان بارسرورها


  ddocker-compose  top   

برای انجام عملیات فوق بر روی یک سرور خاص از دستور زیر استفاده میکنیم

  docker-compose  start core   


برای اتصال به docker از دستور زیر استفاده مینماییم


  (docker attach (docker name   


این دستور باعث میشود شما به شل docker متصل شود.

برای نمایش لیست کانتینر های اجرای موجود از دستور زیر استفاده میکند


  Docker ps    

برای نمایش تمام کانتینر ها از دستور زیراستفاده میشود.

  Docker ps -a   

نکته مهم:

برای خروج از سرور attach شده از کلید ctl + p + q استفاده نمایید. در صورت استفاده از کلید ctl+d با دستور exit ممکن است سرور stop شود. (در صورتی که کانتینر را با -d اجرا کرده باشید, stop نمیشود).


نحوه راه اندازی سرور registry hub

برای راه اندازی سرور ریجستری لوکال لازم است دستور زیر را وارد نماییم

docker run -d -p 5000:5000 --restart=always --name registry registry:2 

در این صورت سرور registry اجرا شده است. برای استفاده از این سرور لازم است ایمیج مورد نظر تگ زده شود.

docker tag debian:ibs 5.202.129.64:5000/debian:IBSng 

دستور بالا image به نام debian:ibs را به صورت زیر تگ میزند

5.202.129.64:5000/debian:IBSng 

حال در هر جایی که از این image استفاده شود, ایمیج مورد نظر دانلود میشود.برای مثال:

docker run 5.202.129.64:5000/debian:IBSng
  • تنظیمات سمت سرور :

برای راه اندازی docker registry ابتدا سرور debian و docker را بر روی سرور نصب می نماییم سپس برای اجرای برنامه ریجستری دستور زیر را اجرا میکنیم برای راه اندازی docker registry ابتدا سرور debian و docker را بر روی سرور نصب می نماییم سپس برای اجرای برنامه ریجستری دستور زیر را اجرا میکنیم

docker run -d -p 5000:5000 --restart=always --name registry registry:2 

دستور بالا image به نام registry:2 را دانلود و اجرا کرده. این ایمیج برای راه اندازی docker repository (docker reistry) استفاده میشود.

توجه نمایید که پورت ۵۰۰۰ در هاست باز است.


  • تگ گذاری ایمیج های  :

برای بارگذاری ایمیج های docker بر روی registry hub لازم است ابتدا باید ایمیج مورد نظر را تگ بزنیم. برای این کار از دستور زیر استفاده میکنیم:

docker tag debian:ibs 5.202.129.64:5000/debian:IBSng 

این دستور به ایمیج به نام debian:ibs تگ به صورت 5.202.129.64:5000/debian:IBSng اختصاص میدهد. قسمت اول این تگ نشانی اینترنتی (IP) سرور است و قسمت دوم نشانی ایمیج اصلی تگ مورد است (debian). در نهایت IBSng که نشان دهنده نام ایمیج است, نشان داده شده است.

  • تنظیمات سمت کلاینت  :

برای استفاده از ایمیج موجود در روی سرور لازم است به سادگی ایمیج موجود را با دستور زیر pull نمایید.

docker  pull 5.202.129.64:5000/debian:IBSng 

در صورتی که سرور را بدون certificate کانفیگ کرده باشید, لازم است کانفیگ زیر را در فایل vim /etc/docker/daemon.json وارد نماییم

 

{

   "insecure-registries": ["5.202.129.64:5000"]

}


و سپس سرویس docker را ریست نمایید

service docker restart 

این مورد باعث میشود که کلاینت شما بتواند به سرور docker registry بدون https متصل شود.


Docker troubleshooting

  • عیب یابی شبکه :

از آنجا که داکر از iptable برای اتصال به شبکه استفاده میکند. مهمترین دستور در عیب یابی شبکه چک کردن IP tables است. دستور زیر برای چک کردن IPtables استفاده میشود.

 iptables -t nat -nvL 

خروجی زیر مشاهده میشود

0   0 DNAT    udp  --  !br-600b9c816e99 *  0.0.0.0/0    0.0.0.0/0   udp dpt:1812 to:192.168.50.11:1812 






















Configuration Backup Service

تنظیم سرویس های پشتیبان گیری به دو صورت امکان پذیر است :

  • از طریق Command-line
  • از طریق ابزار ibsng-tools

Command-line Configuration

Complete Backup :

تنطیمات مربوط به این مدل از پشتیبان گیری در فایل زیر صورت میگیرد :

</div>

  /usr/local/src/tools/db/ibsng_backup/complete/config_file  

تنظیمات مربوط به مسیر نسخه پشتیبان , تعداد نسخه های موجود تا rotate , زمان تهیه آن , دوره زمانی تهیه نسخه پشتیبان و همچنین مسیری برای کپی کردن این نسخه خارج از سرور local به صورت زیر ذخیره میگردد :

  path_backup="/var/backups/IBSng/complete"   
  log_file=/var/log/IBSng/ibs_backup.log    
  periodic="3"  
  auto_run_time_h=6  
  auto_run_time_m=30  
  type=monthly  
  exteranl_dir=/media/backups/IBSng/complete/  

همچنین برای start کردن این سرویس مقدار Enable را در فایل زیر وارد میکنیم :

 /usr/local/src/tools/db/ibsng_backup/complete/service_status  

Custom Backup :

تنطیمات مربوط به این مدل از پشتیبان گیری در فایل زیر صورت میگیرد :

  /usr/local/src/tools/db/ibsng_backup/custom/config_file  

تنظیمات مربوط به مسیر نسخه پشتیبان , تعداد نسخه های موجود تا rotate , زمان تهیه آن , دوره زمانی تهیه نسخه پشتیبان و همچنین مسیری برای کپی کردن این نسخه خارج از سرور local به صورت زیر ذخیره میگردد :

  path_backup="/var/backups/IBSng/custom"   
  log_file=/var/log/IBSng/ibs_backup.log    
  periodic="3"  
  auto_run_time_h=6  
  auto_run_time_m=30  
  type=weekly  
  exteranl_dir=/media/backups/IBSng/custom/  

همچنین برای start کردن این سرویس مقدار Enable را در فایل زیر وارد میکنیم :

 /usr/local/src/tools/db/ibsng_backup/custom/service_status  

hourly Backup :

تنطیمات مربوط به این مدل از پشتیبان گیری در فایل زیر صورت میگیرد :

  /usr/local/src/tools/db/ibsng_backup/hourly/config_file  

تنظیمات مربوط به مسیر نسخه پشتیبان , تعداد نسخه های موجود تا rotate و همچنین مسیری برای کپی کردن این نسخه خارج از سرور local به صورت زیر ذخیره میگردد :

  path_backup="/var/backups/IBSng/hourly"   
  log_file=/var/log/IBSng/ibs_backup.log    
  periodic="48"  
  interval=1  
  exteranl_dir=/media/backups/IBSng/hourly/  

همچنین برای start کردن این سرویس مقدار Enable را در فایل زیر وارد میکنیم :

 /usr/local/src/tools/db/ibsng_backup/hourly/service_status  

ibsng-tools Configuration

برای راه اندازی این سرویس از طریق ibsng-tools مراحل زیر را طی میکنیم :

ابتدا فرمان ibsng-tools را اجرا میکنیم. سپس مطابق شکل زیر گزینه service را انتخاب میکنیم :

2.jpg

در پنجره بعد گزینه backups ‌را انتخاب میکنیم :

5.jpg

در پنجره بعد گزینه IBSng ‌را انتخاب میکنیم :

6.jpg

در پنجره بعد نوع backup مورد نظر ‌را انتخاب میکنیم :

7.jpg

سپس برای Enable کردن سرویس گزینه status و برای تنظیم سرویس گزینه Configuration را انتخاب میکنیم :

8.jpg

Start Backup Service

پس از تنظیم فایل های موردنظر برای start کردن سرویس از فرمان های زیر استفاده می کنیم :


برای start کردن Complete backup فرمان زیر را اجرا میکنیم :

  ibs_backup  

سپس صحت پشتیبان گیری را با فرمان زیر چک میکنیم :

  cat /var/backups/IBSng/complete/pre_end   

خروجی این فایل میباست مقدار " 1 " باشد.


برای start کردن Custom backup فرمان زیر را اجرا میکنیم :

 ibs_backup_custom 

سپس صحت پشتیبان گیری را با فرمان زیر چک میکنیم :

  cat /var/backups/IBSng/custom/pre_end   

خروجی این فایل میباست مقدار " 1 " باشد.



برای start کردن hourly backup فرمان زیر را اجرا میکنیم :

  ibs_backup_hourly  

سپس صحت پشتیبان گیری را با فرمان زیر چک میکنیم :

  cat /var/backups/IBSng/hourly/pre_end   

خروجی این فایل میباست مقدار " 1 " باشد.

ابزارهای شخصی

گویش‌ها
فضاهای نام
عملکردها
گشتن
جعبه‌ابزار