0 امتیاز
821 بازدید
در مجازی سازی توسط مدیر کل (15.6k امتیاز)

قسمت اولDocker چیست؟ آشنایی و نصب داکر قسمت اول

استفاده از Docker برای کاربران حرفه‌ای نرم افزار و شبکه ضروری است. ولی واقعا چرا Docker بسیار مهم است؟ امیدواریم در این سلسله پست‌های Docker به اهمیت Docker پی ببرید.

داکر خود را اینگونه معرفی می‌کند:

Build any app, Ship any where, Run any where

سوالی که مهم است و در ابتدا باید به آن پاسخ داد سوال زیر است:

Docker چه تفاوتی با Virtual Machin‌ها دارد؟

سوالی که در ذهن هر شخص قبل از ورود به داکر خطور می‌کند. یکی از کارهایی که می‌توان در Docker انجام داد عبارت است از: نصب سریع یک سیستم عامل، نصب ابزارهای مورد نیاز روی آن و در نهایت تست نرم افزار خود و پس از پایان کار پاک کردن محیط تست.

تفاوت Docker با Virtual Machin را می‌توانید در تصویر زیر ببینید:

مقایسه virtualmachin‌ها با ducker

در تصویر بالا هم در داکر و هم در ماشین مجازی دو عنصور Server، Host Os مشترک است.

در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوت‌ها از اینجا شروع می‌شود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عامل‌های سنگین و پیچیده می‌توان نرم افزارها را روی آن نصب و تست کرد.

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

  • ایجاد و حذف بسیار سریع Container ها
  • ریستارت و خاموش کردن بسیار سریع
  • انتقال پذیری راحت و سبک
  • مدیریت منابع و ریسورس‌ها به صورت قدرتمند و متغیر
  • و ...

داکر Image:

داکر ایمیج

در داکر Image‌ها را پس از دریافت اجرا می‌کنیم. همانطور که در بالا می‌بینید یک Base Image مانند Debian روی این داکر نصب شده است و روی آن Image‌های دیگر را نصب کرده ایم.

Image‌ها پس از پایان به حالت اولیه خود باز می‌گردند چون همانطور از نام آن‌ها مشخص است تنها یک تصویری از پکیج اصلی هستند. برای حذف تغییرات Image می‌توان حالت آن‌ها را با دستورات خاصی ذخیره کرد.

Docker Hub چیست؟

یک سرویس اشتراک گذاری تهیه شده توسط شرکت Docker است که شامل مخزنی از image‌های آماده برای Docker است.

این مخزن حاوی ده‌ها هزار برنامه و سیستم عامل است که می‌توان به آن image‌هایی را هم اضافه کرد.

Docker Container:

docker container

در واقع می‌توان گفت Container ظرفی است که Image‌ها را در آن اجرا می‌کنند. Container‌ها از روی Image‌ها ایجاد می‌شوند و به وظایف خود عمل می‌کنند. مثلا فرض کنید از یک Centos چند Container می‌سازیم و در هر کدام تغییرات متفاوتی اعمال می‌کنیم.

نصب داکر روی ویندوز:

برای نصب داکر از این لینک استفاده کنید. اگر این لینک فعال نبود. در گوگل جستجو کنید: docker toolbox.

نسخه مخصوص ویندوز این نرم افزار را دانلود و روی فایل نصب کلید کنید.

نصب داکر در ویندوز

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

نصب داکر

بسته‌ای که نصب کردید علاوه بر داکر نرم افزارهای جانبی دیگری نظیر Virtual Box و Git Bash را نصب می‌کند.

پس از نصب نرم افزار Docker روی آیکون Docker Quickstart Terminal کلیک کنید. منتظر بمانید تا مراحل نصب و فعال سازی تنها برای نخستین بار کامل شود.

پس از تکمیل فرایند صفحه‌ای مانند زیر می‌بینید. این صفحه یک ترمینال با نام Git Bash است. Git Bash در واقع شبیه ساز ترمینال لینوکس برای ویندوز است. اکثر دستورات لینوکس در این ترمینال قابل دسترسی هستند.

در این ترمینال دستور زیر را وارد کنید:

docker run hello-world

Copy

با پیغام زیر مواجه می‌شویم. این پیغام به این معناست که image‌ای با نام hello-world موجود نیست و باید از اینترنت دریافت شود.

Unable to find image 'hello-world:latest' locally

Copy

توجه داشته باشید برای گرفتن بسته‌های نرم افزاری از docker بدلیل مسایل تحریم با مشکل مواجه می‌شویم. به همین دلیل مجبور به استفاده از نرم افزاری هستیم که IP ما را به یک IP خارجی تغییر دهید (ف.ی.ل.ت.ر شکن).

پس از دریافت کامل این بسته با تایپ عبارت docker run hello-world متون زیر نمایش داده می‌شود:

نصب image در داکر

استفاده از Kitematic در Docker:

نمایی از محیط Kitematic در داکر

Kitematic یک پروژه جداگانه بوده که برای مدیریت بسته‌ها مورد استفاده قرار می‌گرفته است. اکنون Kitematic به پروژه Docker اضافه شده است و استفاده از Docker را ساده تر کرده است. توجه کنید استفاده از این نرم افزار نیز نیازمند ف.ی.ل.ت.ر شکن است.

به عنوان مثال در باکس جستو عبارت Hello world را جستجو کرده و Create را انتخاب می‌کنیم.

جستجوی Container در Kitematic

پس از نصب این بسته صفحه زیر ظاهر می‌شود:

نمایی-از-اجرای-Container-در-محیط-Kitematic

همانطور که می‌بینید امکان Start و Restart برای بسته دانلودی موجود است. اجرای برنامه نیز در همین صفحه نمایش داده شده است.

1 پاسخ

0 امتیاز
توسط مدیر کل (15.6k امتیاز)

قسمت دوم :

برای اجرای دستورات داکر همانطور که در پست قبل گفته شد باید از آیکون Docker Quickstart Terminal استفاده کرد. توجه کنید که با دستور docker --help می‌توانید به راهنمای دستورات داکر دسترسی پیدا کنید.

حال سوالی این جا مطرح می‌شود و آن هم این که چگونه می‌توانیم دستورات داکر را در CMD ویندوز و یا Git Bash اجرا کرد؟

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

docker-machine env default

Copy

اجرای دستورات داکر در محیط کامند لاین ویندوز

این دستور متغیرها و آدرس‌های پیشفرض داکر را نمایش می‌دهد و در دو سطر آخر خود دستوری را معرفی می‌کند که با این دستور می‌توانیم دستورات را در ترمینال جاری اجرا کرد. مثلا اگر دستور فوق را در CMD ویندوز وارد کنیم دستور زیر برای فعال شدن داکر در CMD مورد استفاده قرار می‌گیرد:

@FOR /f "tokens=*" %i IN ('docker-machine env default') D

Copy

در Git Bash نیز دستور زیر را دریافت می‌کنیم:

eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default)

Copy

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

دستور docker images

این دستور برای انجام عملیات روی image‌ها کاربرد دارد. برای آشنایی هرچه بیشتر از دستور docker images --help استفاده کنید.

با کد زیر تمام image‌ها حتی اگر مخفی باشند به نمایش در می‌آیند:

docker images -a

Copy

مفهوم images در داکر

با کد زیر فقط Image Id را نمایش می‌دهیم:

docker images -q

Copy

دستور docker pull

با این دستور آخرین نسخه از Images را می‌توان دریافت کرد:

docker pull centos

Copy

دستور docker search

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

docker search Ubuntu

Copy

داکر search

دستور docker run

این دستور بسیار پرکاربرد و قدرتمند است. با استفاده از این دستور از image مورد نظر که قبلا نصب کرده ایم یک container ایجاد کرده و اجرا می‌کنیم.

با استفاده از دستور docker run --help به دستورات زیادی برای این کامند مواجه می‌شویم که برخی کاربرد بیشتری دارند.

از جمله:

docker run -i [container name]

Copy

دستور بالا به این مفهوم است که پس از اجرای Container وارد محیط اجرای خود container شود. طبیعتا اگر container فقط خروجی داشت به محیط docker باز می‌گردیم.

docker run -t [container name]

Copy

باعث ایجاد یک ارتباط امن برای وارد شدن به محیط برنامه می‌شود.

docker run --cpu-share=1 [container name]

Copy

کامند فوق تعداد هسته‌هایی که به container اختصاص داده می‌شود را مشخص می‌کند.

به عنوان مثال دستور زیر محیط centos را با اجرا کرده و وارد محیط می‌شود. در ضمن ارتباط این container از طریق ssh امن شده و به آن دو هسته اختصاص داده می‌شود:

docker run -i -t --cpu-shares=2 centos

Copy

نصب centos روی docker داکر

نکته: در دستور بالا به جای --t می‌توان از -it استفاده کرد.

نکته: اگر یک image موجود نباشد و ما آن را run کنیم شروع به نصب آن image می‌کند.

نکته: گاهی ممکن است چند image با یک نام داشته باشیم. برای تفکیک آن‌ها تگ را به شکل زیر به کار می‌بریم:

docker run [image name]:[tag]

Copy

مانند:

docker run -it centos:7.0.0.5

Copy

نکته: برای مشاهده کل Container‌ها اعم از مخفی و غیر مخفی از دستور docker ps -a استفاده می‌کنیم.

نکته: می‌توان به container‌ها اسم اختصاص داد. اگر از دستور docker ps -a استفاده کنیم مشاهده می‌کنیم که برای هر اجرا به container یک نام اختصاص داده شده است. این نام به صورت تصادفی به container داده می‌شود، می‌توان این نام را اختصاصی کرد:

docker run --name hitos hello-world

Copy

دستور docker ps

این دستور تمام Container‌های فعال داکر را نمایش می‌دهد.

با استفاده از دستور docker ps -a تمام container فعال یا غیر فعال را مشاهده می‌کنیم.

برای مشاهده راهنمای کل دستورات docker ps از دستور docker ps --help استفاده می‌کنیم.

دستور docker rm

با استفاده از دستور فوق می‌توانیم Container را پاک کنیم. این دستور به این شکل عمل می‌کند که ابتدا باید container id را استخراج کنیم. برای مشاهده این id از دستور docker ps -a استفاده می‌کنیم:

دستور docker ps

docker rm [container id]

Copy

نکته: اگر درون یک container باشیم برای خروج از آن از دستور exit استفاده می‌شود.

نکته: اگر یک container فعال باشد نمی‌توان آن را remove کرد. container را هم می‌توان به صورت تکی متوقف کرد و یا این که از -f استفاده کرد. این دستور ابتدا container را متوقف کرده و سپس پاک می‌کند.

docker rm -f 18f7f0676cc0

Copy

برای متوقف کردن تمام container‌ها از دستور زیر استفاده می‌شود:

docker rm -f $(docker ps -a -q)

Copy

البته توجه داشته باشید این روش استفاده از روش پاک کردن تمام container‌ها تنها در لینوکس و Git Bash کاربرد دارد و در CMD ویندوز غیر قابل استفاده است، چون این دستور منحصر به لینوکس است.

دستور docker rmi

با استفاده از این دستور image را پاک می‌کنیم. برای پاک کردن می‌توان از ID و یا نام Image استفاده کرد. البته باید توجه داشته باشید اگر از image مورد نظر یک Container فعال باشد باید ابتدا آن را پاک کرد سپس اقدام به پاک کردن image کرد. مثال:

docker rmi [image id]

Copy

دستور docker commit

وقتی یک container از روی یک image ایجاد بکنیم در صورت exit شدن تمام تغییرات آن بسته می‌شود، مگر این که از آن یک image بسازیم.

برای مثال دستور docker run -it centos را ابتدا اجرا می‌کنیم.

در مسیر جاری یک فایل با دستور touch hitos.txt ایجاد می‌کنیم. با این دستور در مسیر جاری یک فایل با نام hitos.txt ایجاد می‌شود. اگر از این container خارج شویم و یک container دیگه با docker run ایجاد کنیم مشاهده می‌کنیم دیگر این فایل hitos.txt قابل دسترسی نیست.

مثالی از داکر ران

در مثال بالا ابتدا centos را اجرا کردیم و در مسیر جاری یک فایل ایجاد کردیم و توانستیم با دستور ls آن را مشاهده کنیم. سپس از centos خارج می‌شویم و دوباره به centos وارد می‌شویم. با دستور ls مشاهده می‌کنیم دیگر فایل hitos.ir در مسیر جاری دیده نمی‌شود.

برای کامیت کردن یک کانتینر مراحل زیر را انجام می‌دهیم:

وقتی یک Container را exit کردیم با دستور docker ps -a تمام Container‌ها را مشاهده می‌کنیم. سپس با استفاده از دستور زیر یک Image از آن Container می‌سازیم:

docker commit [Container Id] [image name]:[tag]

Copy

مثلا:

docker commit 11b24629e3f5 hitos:hitos.ir

Copy

برای اجرا شدن image فوق به شکل زیر عمل می‌کنیم:

docker run hitos:hitos.ir

Copy

داکر کامیت

تصویر فوق به طور کامل یک مثال از کامیت را به نمایش در می‌آورد.

دستور docker save

این دستور برای ذخیره image مورد استفاده قرار می‌گیرد. این image ذخیره شده را می‌توان برای دیگران ارسال کرد.

docker save -o [output name] [image name]:[tag]

Copy

مثال:

docker save -o hitos.tar.gz centos:centos

Copy

فایل فوق در مسیر جاری ذخیره می‌شود.

دستور docker load

این دستور image ذخیره شده از مرحله قبل را بارگذاری می‌کند:

docker load -i [input zipped image]

Copy

مثال:

docker load -i hitos.tar.gz
FOXNET محلی برای دانستن واشتراک مطالبی که نمی دانستید

سوالات مشابه

0 امتیاز
1 پاسخ 448 بازدید
سوال شده مارس 29, 2021 در مجازی سازی توسط admin مدیر کل (15.6k امتیاز)
0 امتیاز
0 پاسخ 190 بازدید
سوال شده فوریه 3, 2023 در ویندوز 7-8-10 توسط admin مدیر کل (15.6k امتیاز)
0 امتیاز
0 پاسخ 727 بازدید
سوال شده اوت 22, 2019 در شبکه عمومی توسط admin مدیر کل (15.6k امتیاز)
0 امتیاز
0 پاسخ 541 بازدید
0 امتیاز
0 پاسخ 347 بازدید
سوال شده فوریه 14, 2018 در مقاله توسط admin مدیر کل (15.6k امتیاز)
...