Docker Installation

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

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

محتویات

Docker

Difference between Docker and VM

، Docker هیچ سیستم عامل جدیدی ایجاد نمی کند بلکه این امکان را به بسته نرم افزاری ایجاد شده می دهد که از Kernel اصلی سیستم عامل لینوکسی که بر روی آن نصب شده است استفاده کند و در زمان انتقال نیز فقط Package نرم افزاری منتقل می شود نه ماشین مجازی ، در واقع Docker Engine یا موتور اصلی Docker جایگزین نرم افزار Hypervisor ما می شود و اینکار یعنی کارایی سیستم ما به شدت افزایش می یابد زیرا یک لایه واسط به نام Hypervisor حذف شده و نرم افزار بصورت مستقیم با هسته اصلی سیستم عامل کار میکند با این تفاوت که کاملا ایزوله شده است.

D4.png


در تصویر بالا هم در داکر و هم در ماشین مجازی دو عنصور Server، Host Os مشترک است. در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوت‌ها از اینجا شروع می‌شود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عامل‌های سنگین و پیچیده می‌توان نرم افزارها را روی آن نصب و تست کرد. هرچند می‌توان نسخه کوچکی از نسخه‌های مختلف سیستم عامل را نیز نصب کرد ولی باز هم بسیار راحت تر از سیستم ماشین‌های مجازی است. از مزایای استفاده از داکر نسبت به مجازی ساز می‌توان به موارد زیر اشاره کرد: ایجاد و حذف بسیار سریع Container ها ریستارت و خاموش کردن بسیار سریعنحوه راه اندازی سرور registry hub انتقال پذیری راحت و سبک مدیریت منابع و ریسورس‌ها به صورت قدرتمند و متغیر و …

داکر Image:

D5.png

در داکر 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 را نصب میکنیم :


نصب سرویس 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 آن را انتخاب نمایید:

1.jpg

سپس کلید Enter را فشار دهید. در منوی بعد با استفاده از کلیدهای مکان نماen_US.UTF-8 را انتخاب کرده و سپس کلید Enter را فشار دهید:

20.jpg

پس از اجرای دستورات بالا باقی مراحل نصب توسط ابزار ibsng-tools انجام می شود. جهت اجرای ابزار دستور زیر را اجرا می کنیم:

 root@debian:/home/Download# ibsng-tools  

جهت نصب IBSng وارد بخش IBSng Operations‌ می شویم:

15.jpg

بر روی Install رفته و کلید Enter را فشار میدهیم:

16.jpg

منوی ذیل تمامی مواردی را نمایش می‌دهد که باید همگی به ترتیب از بالا به پایین انجام شوند. به همین منظور تمامی بخش‌ها را به ترتیب اجرا می کنیم:

17.jpg

Update key:

به منظور پیکربندی تنظیمات مربوط به فرمان ssh این مورد انجام میشود.

  • Update Repository :

در قسمت Auto Config پیکربندی مخازن بسته های دبیان انجام میشود. توجه: نیازی به پیکربندی بسته ها به صورت Static نیست. این مورد تنها در موارد خاص استفاده میشود. در قسمت Update لیست بسته های دبیان به روز رسانی میشوند. با انتخاب گزینه Back به منوی اول بر میگردیم. در مرحله Install Require Package نسبت به دانلود پکیج های مورد نیاز IBSng اقدام می کنیم: نصب پکیج ها ممکن است بسته به پهنای باند اینترنت سرور زمان زیادی طول بکشد. توجه: پس از انجام این مرحله با استفاده از دکمه Tab بر روی Cancel رفته و دکمه Enter را فشار دهید تا از برنامه ibsng-tools خارج شوید. به منظور نصب IBSng نیاز است که کاربری با نام ibs که فقط دسترسی به دیتابیس IBSng را داشته باشد ساخته شود. با استفاده از دستور زیر کاربر ibs ساخته میشود(در وارد کردن دستور زیر دقت لازمه را بعمل آورید):

root@debian:/home/Download# sed -i-backup '3i local IBSng ibs trust' /etc/postgresql/9.5/main/pg_hba.conf

باید 4 خط اول فایل /etc/postgresql/9.5/main/pg_hba.conf به صورت زیر باشد. با استفاده از فرمان زیر میتوانید آن را چک نمایید:

root@debian:/home/Download# head –n 4  /etc/postgresql/9.5/main/pg_hba.conf
# PostgreSQL Client Authentication Configuration File
# ===================================================
   
local IBSng ibs trust

پس از انجام مرحله بالا وارد برنامه ibsng-tools شده و ادامه مراحل نصب IBSng را از قسمت IBSng Operation ادامه میدهیم:

در مرحله Setting Time Zone زمان و ساعت سرور به صورت اتوماتیک تنظیم میگردد. در مرحله Configure Default File نسبت به نصب و پیکربندی برخی از فایل های ضروری اقدام می کنیم. در مرحله Generate Output لازم است تا حتماً قفل سخت افزاری به سرور متصل باشد. در صورت وجود قفل سخت افزاری پس از وارد شدن به بخش Generate Output بر روی گزینه With USB رفته و کلید Enter را فشار دهید.(در صورت اینکه از قفل نرم افزاری استفاده مینمایید از گزینه Without USB استفاده نمایید). پس از انجام یکی از موارد بالا یک هش فایل با نام output در دایرکتوری /home/ ساخته میشود که پس از ارسال این فایل از طریق تیکت به قسمت پشتیبانی شرکت پارس پویش و اضافه شدن این فایل توسط همکاران فروش در License Server شرکت پارس پویش، میتوانید مرحله بعد را که مربوط به نصب سرویس IBSng است انجام دهید.

  • توجه: در صورت اینکه از قفل نرم افزاری استفاده می نمایید با استفاده از سخت افزار سرور این هش فایل ساخته میشود در حالی که اگر قفل سخت افزاری دارید این هش فایل به صورت پیش فرض در درون فلش دیسکی که همکاران فروش شرکت پارس پویش در اختیار شما قرار داده اند وجود دارد. این نکته را نیز به یاد داشته باشید که استفاده از قفل نرم افزاری به معنی استفاده از سرویس IBSng بر روی هر سخت افزاری نیست و اگر با استفاده از ابزارهای موجود در ESX ماشین مجازی IBSng را migrate نمایید سرویس از کار خواهد افتاد.

پس از وارد شدن به بخش Install IBSng جهت ادامه نصب با وارد کردن کاراکتر y وارد فرآیند نصب می شویم. درصورتی که برای نصب قفل سخت افزاری خریداری شده باشد پس از اتصال آن به سرور در این قسمت با وارد کردن کاراکتر y نصب را با استفاده از این قفل انجام می دهیم(در صورت آن که بخواهیم نصب IBSng را با استفاده از قفل نرم افزاری انجام دهیم در این قسمت کاراکتر n را وارد می نماییم). در انتها با مشاهده پیام زیر نصب IBSng به اتمام می رسد.


204.jpg

با فشرن یک دکمه به منوی اصلی نصب بازمیگردیم، با رفتن بر روی Cancel و فشردن دکمه Enter از برنامه خارج شوید. طی گذشت زمان و بروز شدن ساختار IBSng نیاز است تا برخی موارد پس از نصب جایگزین شوند که برای این مهم دستورات زیر را به ترتیب اجرا نمایید(در وارد کردن دستورات زیر دقت لازمه را بعمل آورید):

root@debian:/home/Download# psql -U ibs IBSng < /usr/local/IBSng/db/from_B1.33_upgrade.sql 
root@debian:/home/Download# psql -U ibs IBSng < /usr/local/IBSng/db/from_B1.34_upgrade.sql 
root@debian:/home/Download# psql -U ibs IBSng < /usr/local/IBSng/db/from_B1.35_upgrade.sql 
root@debian:/home/Download# psql -U ibs IBSng < /usr/local/IBSng/db/from_B1.36_upgrade.sql 
root@debian:/home/Download# psql -U ibs IBSng < /usr/local/IBSng/db/tables.sql 
root@debian:/home/Download# psql -U ibs IBSng < /usr/local/IBSng/db/functions.sql 

در ادامه فایل آرشیو زیر را که شامل آخرین کتابخانه های زبان برنامه نویسی Python میباشد و لازمه اجرا شدن سرویس IBSng، دانلود میکنیم:

root@debian:/home/Download# wget -c pkg.parspooyesh.com/narbeh/dist-packages.tar 

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

root@debian:/home/Download# mv /usr/local/lib/python2.7/dist-packages{,-OLD} 

سپس با استفاده از فرمان زیر کتابخانه های جدید را جایگزین کتابخانه های قدیمی میکنیم:


root@debian:/home/Download# tar xf dist-packages.tar -C / 

سپس فرمان های زیر را اجرا میکنیم:


root@debian:/home/Download# wget -O /etc/redis/redis.conf http://pkg.parspooyesh.com/narbeh/redis.conf / 

root@debian:/home/Download# /etc/init.d/redis-server restart /

در این بخش نصب IBSng با موفقیت به پایان رسیده است.. میتوانید با استفاده از فرمان زیر سرویس IBSng را استارت نمایید:


root@debian:/home/Download# /etc/init.d/IBSng restart 

پس از استارت شدن سرویس از پنجره ابزار ibsng-tools و از service tab گزینه های logrotate و 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

1. برای نصب Docker در IBSng-tools مراحل زیر را طی میکنیم :


D7.png

گزینه (Docker(new را انتخاب میکنیم.


D8.png

در این پنجره به ترتیب گزینه های 1 , 2 , 4 و 5 را اجرا میکنیم.


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

  docker-compose up -d   
D9.png

برای چک کردن بالا بودن از دستور زیر استفاده کنید :

 Docker-compose ps  

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


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 

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

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

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