Email: info@developit.ir
نمایش ۱ تا ۸ مورد از کل ۸ مورد.

نصب و راه اندازی elasticsearch در docker

فقط یه نکته ی کوچیک برای این مورد وجود داره و سایر کارهایی که انجام میدیم با مطالعه مطالب قبلی که در مورد docker نوشتم قابل انجام هست.

اول وارد docker hub میشیم و elasticsearch رو جستجو میکنیم. مخزن اصلی elasticsearch به این آدرس هست و داخلش توضیحات کاملی نوشته شده.

elasticsearch رو دریافت میکنیم:

docker pull elasticsearch

همونطور که توضیح داده elasticsearch به طور پیشفرض هم برای http و هم برای transport از localhost استفاده میکنه و همچنین http.host اون روی 0.0.0.0 تنظیم شده.

نکته مهم اینجاست، زمانی که شما docker رو نصب میکنید خودش سه تا network connection میسازه. برای اینکه لیستشون رو ببینید از دستور زیر استفاده کنید:

$ docker network ls

NETWORK ID          NAME                DRIVER
7fca4eb8c647        bridge              bridge
9f904ee27bf5        none                null
cf03ee007fb4        host                host

به طور پیشفرض از docker0 استفاده میشه که از نوع bridge هستش:

$ ifconfig

docker0   Link encap:Ethernet  HWaddr 02:42:47:bc:3a:eb
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:47ff:febc:3aeb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1100 (1.1 KB)  TX bytes:648 (648.0 B)

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

بیشتر بخوانید

tag، pull و push کردن Docker image

در قسمت قبلی، image خودمون رو ساختیم که البته هنوز داخل لوکال هست و حالا بهتره به hub انتقالش بدیم و بیشتر با دستورات docker آشنا بشیم.

از docker images استفاده میکنیم تا ببینیم در حال حاظر چه image هایی رو داریم:

$ docker images
 REPOSITORY           TAG          IMAGE ID            CREATED             SIZE
 docker-whale         latest       7d9495d03763        38 minutes ago      273.7 MB
 <none>               <none>       5dac217f722c        45 minutes ago      273.7 MB
 docker/whalesay      latest       fb434121fc77        4 hours ago         247 MB
 hello-world          latest       91c95931e552        5 weeks ago         910 B

IMAGE ID اون docker-whale که ساختیم رو ببینید و توجه کنید REPOSITORY در حال حاضر نامش رو بدون namespace نشون میده. اگر قراره image رو به hub ببریم به namespace احتیاج داریم. در واقع namespace همون نام اکانت شما داخل docker hub هست. چیزی شبیه به YOUR_DOCKERHUB_NAME/docker-whale.

برای این کار و برچست زدن به یک image از docker tag استفاده میکنیم:

docker tag 7d9495d03763 <YOUR_DOCKERHUB_NAME>/docker-whale:latest

اگر دوباره خروجی docker images رو ببینید متوجه میشید که image ما برچسب خورده. البته دقت کنید YOUR_DOCKERHUB_NAME باید همون نام حساب کاربری شما داخل hub باشه.

docker images
 REPOSITORY                  TAG       IMAGE ID        CREATED          SIZE
 maryatdocker/docker-whale   latest    7d9495d03763    5 minutes ago    273.7 MB
 docker-whale                latest    7d9495d03763    2 hours ago      273.7 MB
 <none>                      <none>    5dac217f722c    5 hours ago      273.7 MB
 docker/whalesay             latest    fb434121fc77    5 hours ago      247 MB
 hello-world                 latest    91c95931e552    5 weeks ago      910 B

 

بیشتر بخوانید

image خود را داخل Docker بسازید

قراره image خودمون رو داخل docker بسازیم، به عنوان نمونه تصمیم دارم whalesay رو که قبلا باهاش کار کردیم بهبود بدم و جای اینکه هنگام run شدن متنی رو برای اون بفرستیم، یک جمله تصادفی انتخاب و به اصطلاح say کنه.

در مرحله ی اول نیاز به Dockerfile داریم. Dockerfile، یک فایل متنی هست و شامل دستوراتی میشه که کاربر میتونه داخل command line ازش استفاده کنه. از این فایل برای بالا آوردن image خودمون استفاده میکنیم.

یک directory میسازیم و واردش میشیم:

mkdir mydockerbuild
cd mydockerbuild

Dockerfile رو ایجاد میکنیم، خیلی ساده:

nano Dockerfile

حالا داخلش شروع به نوشتن میکنیم، اول باید FROM اضافه بشه

FROM docker/whalesay:latest

این دستور به داکر میگه image ما به عنوان پایه/base از کدوم image استفاده میکنه. باز هم تکرار میشه، داکر ابتدا بررسی میکنه آیا image مورد نظر ما (whalesay)، اونم اخرین نسخه اش! رو در لوکال خودمون داره یا نه، و اگر نداشت ابتدا اون رو از hub دانلود میکنه و بعدش میره سراغ باقی مسائل.

بیشتر بخوانید

دریافت Image و استفاده از آنها در Docker

شما میتونید داخل Docker Hub به دنبال image های مورد نظرتون بگردین.

به این منظور صفحه Docker Hub رو باز کنید و یادتون باشه که تحریم هستیم :/

Docker Hub شامل image هایی از اشخاص حقیقی مثل خود شما و یا image های رسمی از سازمان های مختلف مانند RedHat, IBM, Google و... است.

در قسمت جستجو به دنبال whalesay و بین نتایج docker/whalesay رو انتخاب کنید.

بیشتر بخوانید

بررسی مفاهیم Image و Container در Docker

پس از نصب داکر در مطلب قبلی ما دستور docker run hello-world رو اجرا کردیم. این دستور به سه بخش تقسیم میشه:

- docker: یک دستور سیستمی که امکان استفاده از برنامه docker رو فراهم میکنه.

- run: یک زیر دستور/subcommand برای ایجاد و اجرای container.

- hello-world: میگه کدوم image داخل container قرار بگیره(load شود).

در زمانی که شما این دستورُ اجرا میکنید Docker Engine:

- بررسی میکنه آیا image با عنوان hello-world رو داره یا نه.

- اگر نداشت اون رو از Docker Hub دریافت میکنه.

- image رو load و در container اجرا میکنه.

اگر از دید برنامه نویسی نگاه کنیم، image یک class و container نمونه ای از اون کلاس هست.

container شامل یک image، محیط اجرایی و مجموعه ای از دستورالعمل هاست. مفهوم container از کانتینر هایی که به منظور حمل کالا استفاده میشن گرفته شده که یک روش استاندارد برای حمل محصولات گاها به وسیله ی کشتی در سطح جهانی است.

نصب و راه اندازی Docker در لینوکس Ubuntu، سلام دنیا!

docker

برای نصب و راه اندازی Docker در Ubuntu نیاز به 64 بیتی یکی از نسخه های Yakkety 16.10، Xenial 16.04 - LTS یا Trusty 14.04 - LTS دارید.

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

sudo apt-get update
sudo apt-get install curl
sudo apt-get install linux-image-extra-$(uname -r)
sudo apt-get install linux-image-extra-virtual

روش های متفاوتی برای نصب Docker وجود داره، بسته به نیازتون:

- بیشتر کاربران به دلیل سهولت نصب، راه اندازی و ارتقاء وظایف، repository ها رو راه اندازی و از این طریق نصب رو انجام میدن. Docker این روشُ توصیه میکنه.

- برخی از کاربران بسته های DEB رو دانلود میکنن سپس نصب، راه اندازی و ارتقاء وظایفُ کاملا دستی انجام میدن.

- عده ای هم نمیتونن از مخازن رسمی Docker استفاده کنند و باید به نسخه ای از Docker اتکا کنن که در سیستم عامل‌شان کار کنه، این نسخه ها ممکنه قدیمی و از تاریخ گذشته باشند.

بیشتر بخوانید

آشنایی با Docker Hub

Docker Hub یکی از سرویس های docker است که امکان اتصال به مخازن، ساخت و تست image، ذخیره سازی image و اتصال به Docker Cloud برای توسعه image ها داخل هاست شخصیتان را فراهم میکند.

Docker Hub یک منبع متمرکز برای جستجوی image ها، توزیع، مدیریت، همکاری تیمی و راه اندازی گردش کاری برای توسعه دهندگان را ایجاد کرده.

امکانات کلی Docker Hub به شرح زیر میباشد:

Image Repositories: یافتن image ها از انجمن یا کتابخانه های رسمی.

Automated Builds: ایجاد خودکار image های جدید زمانی که شما تغییری در منبع اعمال میکنید.

Webhooks: یک ابزار برای خودکار کردن Build ها. Webhooks امکان اعمال trigger بعد از push موفقیت آمیز داخل مخزن را فراهم میکند.

Organizations: ساختن گرو های کاری و مدیریت دسترسی ها برای مخازن.

docker-hub

به دو روش میتوانید در مخازن عمومی و image ها جستجو کنید. روش اول استفاده از قسمت جستجوی وبسایت Docker Hub و روش دوم استفاده از ابزار command line و دستور docker search است. به عنوان مثال اگر به دنبال image یکی از توزیع های لینوکس میگردین باید از چنین دستوری داخل command line استفاده کنید:

$ docker search ubuntu

هر دو روش لیستی از مخازن عمومی موجود در Docker Hub را به عنوان نتیجه نشان میدهد.

مخازن خصوصی در نتایج جستجوی شما نمایش داده نخواهند شد مگر اینکه دسترسی شما برای آن مخازن تعریف شده باشد.

Docker Hub شامل تعداد زیادی Official Repositories میباشد. این مخازن رسمی کاملا عمومی و تایید شده هستند که میتوانید از آنها برای ساخت service ها و application های خود استفاده کنید.

Docker Hub محلی برای ساخت و راه اندازی image هایتان فراهم کرده. شما میتوانید به دو روش مخازن خود را پیکره بندی کنید:

Repositories: امکان push کردن image ها از کامپیوتر شخصی خود داخل Docker Hub را فراهم میکند.

Automated Builds: کد منبع و trigger را بهم متصل میکند تا هنگام تغییرات، بازسازی image فراهم شود.

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

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

 

بررسی تفاوت Docker و VM

Docker یک بستر باز برای توسعه دهنگان است و امکان ایجاد، توسعه و اجرای application ها را بسیار آسان میکند. این موارد با استفاده از container ها فراهم میشود.

مجازی سازی در سطح سیستم عامل یک روش مجازی سازی سرور است که هسته سیستم عامل اجازه میدهد چندین نمونه ماشین مجازی مستقل از هم در آن به وجود بیایند که گاهی اوقات به این ماشین های مجازی container گفته میشود.

VM به طور گسترده در سرور های پردازش ابری مورد استفاده قرار میگیرد. VM برای استفاده ی موثر و امن application ها در محیطی پایدار، یک سیستم عامل کامل را load میکند.

میتوان گفت Docker Container پتاسیل بسیار بالاتری نسبت به Virtual Machine دارد. Docker Container هسته سیستم عامل و کتابخانه های application را به اشتراک میگذارد. در حالی که ماشین های مجازی VM از منابع اختصاص داده شده خود استفاده میکنند.

VM-Diagram

container سرباری کمتری نسبت به vm دارد و به طور کلی کارایی application ها در container برابر یا بهتر از اجرای آن در vm میباشد.

ممکن است عملیات ایجاد و راه اندازی vm چند دقیقه طول بکشد در حالی که برای container این عملیات کمتر از یک ثانیه انجام میشود. application در حال اجرا داخل یک container میتواند تا دو برابر سریعتر از نمونه خود داخل vm عمل کند.

Docker تحولی بزرگ برای توسعه دهنگان است، اجرای app ها روی Docker و deploy آن در توزیع های مختف لینوکس، Cloud یا محیط های تست در کمترین زمان ممکن اکنون فراهم شده.

VM انعطاف پذیری بالایی دارد در حالی که Docker نخست بر application ها، قابلیت حمل و وابستگی هایشان تمرکز کرده و همین موضوع باعث شده توسعه دهندگان سریعتر نتیجه ی کار خود را به مرحله ی production برسانند در نتیجه نمیتوان گفت Docker توسعه داده شده تا جایگزینی برای VM باشد.

 

عضویت در خبرنامه
جهت اطلاع از آخرین فعالیت های من لطفا در خبرنامه عضو شوید