Docker Installation
محتویات |
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 به دو صورت انجام میگیرید و تفاوت این دو روش در تفاوت پارتیشن بندی هاست .
debian Installation for normal IBSng Installation
در روش اول و برای نصب سرویس IBSng به صورت معمول پارتیشن بندی به صورت زیر میباشد :
/boot ex4 1G /ext4 50G /var xfs 120G /var/log/IBSng xfs 150G /var/lib/postgresql xfs 500G swap 3G
پس از نصب سیستم عامل به روش زیر سرویس IBSng را نصب میکنیم :
Install IBSng
جهت نصب تهیه موارد زیر الزامیست:
- قفل سخت افزاری (USB) متصل شده به سرور
- امکان اتصال سرور به اینترنت
لازم به ذکر است که سرویس IBSng بر روی نسخه ۶۴ بیتی سیستم عامل Debian 8 wheezy نصب و راه اندازی می شود. پس از نصب سیستم عامل Debian با توجه به نیازمندیهای موجود، دستورات زیر را وارد می کنیم: در ابتدا دایرکتوری زیر را ساخته و وارد آن شوید:
root@debian:# cd /home root@debian:# mkdir Download root@debian:# cd Download
استفاده از دستور زیر DNS سرور را در دبیان مشخص نمایید(میتوانید به جای آی پی 4.2.2.4، DNS سرور دلخواه خود را تنظیم نمایید):
root@debian:/home/Download/# echo “nameserver 4.2.2.4” >> /etc/resolv.conf
به منظور نصب و آپدیت پکیجها URL مخزن بسته های دبیان را در فایل زیر تنظیم نمایید:
root@debian:/home/Download/# echo “deb http://ftp.debian.org/debian jessie main” > /etc/apt/sources.list
با استفاده از دستور زیر لیست بسته ها را آپدیت نمایید:
root@debian:/home/Download/# apt-get update
با استفاده از فرمان apt-get بسته های اولیه را نصب نمایید:
root@debian:/home/Download/# apt-get install dialog screen aptitude locales -y
با استفاده از دستور زیر متغیر محیطی زیر را تنظیم نمایید تا زبان بومی سرور به صورت موقت به زبان انگلیسی تغییر پیدا کند:
root@debian:/home/Download/# wget http://pkg.parspooyesh.com/narbeh/config.sh"
در ادامه با استفاده از کلیدهای مکان نما بر روی گزینه UTF-8 en_US.UTF-8 رفته سپس با استفاده از کلید space آن را انتخاب نمایید:
سپس کلید Enter را فشار دهید. در منوی بعد با استفاده از کلیدهای مکان نماen_US.UTF-8 را انتخاب کرده و سپس کلید Enter را فشار دهید:
پس از اجرای دستورات بالا باقی مراحل نصب توسط ابزار ibsng-tools انجام می شود. جهت اجرای ابزار دستور زیر را اجرا می کنیم:
root@debian:/home/Download# ibsng-tools
جهت نصب IBSng وارد بخش IBSng Operations می شویم:
بر روی Install رفته و کلید Enter را فشار میدهیم:
منوی ذیل تمامی مواردی را نمایش میدهد که باید همگی به ترتیب از بالا به پایین انجام شوند. به همین منظور تمامی بخشها را به ترتیب اجرا می کنیم:
با فشرن یک دکمه به منوی اصلی نصب بازمیگردیم، با رفتن بر روی Cancel و فشردن دکمه Enter از برنامه خارج شوید.
root@debian:/home/Download# /etc/init.d/IBSng restart
پس از استارت شدن سرویس از پنجره ابزار ibsng-tools و از service tab :
گزینه های logrotate ,backup و runlevel را اجرا میکنیم :
اکنون برای استفاده و انجام تنظیمات، آدرس زیر را در مرورگر خود وارد می کنیم:
http://[IP Server]/IBSng/admin
debian Installation for IBSng Installation via Docker
در روش دوم و برای نصب سرویس IBSng از طریق نصب Docker پارتیشن بندی ها به صورت زیر میباشد :
/boot ext4 1G /ext4 50G /var/lib/docker ext4 500G swap 3G
پس از پارتیشن بندی به روش فوق, docker را نصب نمایید.
Docker Installation
نصب Docker به دو صورت انجام میگیرد :
1. via IBSng-tools
2. via Command-Line
Docker Installation via IBSng-tools
1. برای نصب Docker در IBSng-tools مراحل زیر را طی میکنیم :
گزینه (Docker(new را انتخاب میکنیم.
در این پنجره به ترتیب گزینه های 1 , 2 , 4 و 5 را اجرا میکنیم.
حال برای اجرای containerدستور زیر را در دایرکتوری /docker/dockerComposeCore وارد میکنیم
docker-compose up -d
اکنون برای استفاده و انجام تنظیمات، آدرس زیر را در مرورگر خود وارد می کنیم:
http://[IP Server]/IBSng/admin
برای چک کردن بالا بودن از دستور زیر استفاده کنید :
Docker-compose ps
و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است.حال کافی است لایسنس را به روش عادی به روز نماییم.
Docker Installation via Command-Line
2. برای نصب Docker از طریق command-line مراحل زیر را طی میکنیم :
برای نصب لازم است ابتدا package های مورد نیاز را نصب کنیم. برای این کار دستور زیر را وارد میکنیم:
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
حال کلید رسمی منتشر شده از سایت docker را اضافه میکنیم.
Add Docker’s official GPG key: curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
حال repository مورد نیاز برای نصب docker را اضافه مینماییم.
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
chmod +x /usr/local/bin/docker-compose
دانلود ایمیج از parspooyesh hub
تنظیمات سرور همچنین فایل زیر را باز نمایید /etc/docker/daemon.json و کد زیر را در آن اضافه نمایید
{ "insecure-registries": ["5.202.129.64:5000"] }
استفاده از docker-compose برای اجرای docker ibs در فولدر home یوزر خود فولدری به نام dockerCompose ایجاد نمایید. و فایلی به نام docker-compose.yml در آن ایجاد نمایید در این فایل کد زیر را وارد کنید
version: '2' services: #================= IBSng Core ================= Core: image: "78.47.28.30:5000/debian:IBSng" container_name: IBSng_Server hostname: IBSng_Server ports: - "8080:8080" - "6379:6379" - "8000:8000" - "1812:1812/udp" - "1813:1813/udp" - "1235:1235" - "1237:1237" - "8001:8001" - "80:80" - "1700:1700/udp" - "5432:5432" - "27017:27017" - "9596:22" - "88:88" - "389:389" volumes: - /dev/mem:/dev/mem - etc:/etc/ - var:/var/ - usr:/usr/ stdin_open: true tty: true privileged: true restart: always command: sed -i "5i listen_addresses = '*'" /etc/postgresql/9.4/main/postgresql.conf command: /etc/init.d/cron restart command: /etc/init.d/redis-server restart command: /etc/init.d/postgresql restart command: /etc/init.d/apache2 restart command: /etc/init.d/rsyslog restart command: /etc/init.d/ssh restart command: /etc/init.d/IBSng restart command: /bin/bash networks: IBSng_network: ipv4_address: 192.168.50.11 #================= Network Configuration ================= networks: IBSng_network: driver: bridge ipam: driver: default config: - subnet: 192.168.50.0/24 gateway: 192.168.50.1 volumes: etc: var: usr:
حال برای اجرای containerدستور زیر را وارد میکنیم
docker-compose up -d
این دستور باید containerهای تعریف شده را اجرا بنماید.
برای چک کردن up شدن از دستور زیر استفاده کنید
Docker-compose ps
و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است.حال کافی است لایسنس را به روش عادی به روز نماییم.