محمد جوادی - SMJ
محمد جوادی - SMJ
خواندن ۶ دقیقه·۴ سال پیش

چگونه با داکر کار کنیم؟ - داکر سوارم - ۱

سلام خدمت شما مخاطب گرامی که هر هفته با سری مقالات آموزش استفاده از داکر با من همراه بودید و در این مسیر من را همراهی کردید.

در ششمین قسمت از مقالات آموزش استفاده از داکر با سراغ داکر سوارم رفته و توضیحات کلی و تکمیلی درباره دستورات نحوه استفاده و چیستی داکر سوارم با یکدیگر بحث می‌کنیم.

در قسمت‌های قبلی با دستورات داکر، روش ساخت داکر فایل، ساخت داکر کامپوز فایل و استفاده از داکر کامپوز و چیستی داکر والیوم و استفاده از آن را با یکدیگر آموختیم و حالا نوبت آن است تا به قسمت دیگری از دنیای داکر به اسم داکر سوارم ورود پیدا کنیم.


در نظر داشته باشید که این مقاله برای کسانی نوشته شده از که تا کنون تجربه‌ای از کارکردن با داکر نداشته و این سلسله مقالات اولین تجربه مواجهه آن‌ها با داکر می‌باشد به همین دلیل توضیحات اصولا سطحی و در دسترس بوده و گزینه‌های جانبی زیادی را بررسی نمی‌کنیم.

در این مقاله خواهیم خواند:

  • داکر سوارم چیست؟
  • چگونه داکر سوارم را نصب کنیم؟
  • چرا از داکر سوارم استفاده می‌کنیم؟

توجه داشته باشید که این مقاله در دو قسمت تبیین شده و ادامه مقاله هفته آینده منتشر خواهد شد.

داکر سوارم چیست؟

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


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

یک نود در این مثال تبدیل به سوارم منیجر شده و چندین نود تبدیل به کارگران (worker)‌های آن سوارم منیجر خواهندشد.

این ویژگی به ما این برتری را می‌دهد که با استفاده از منابع بسیار بالا داکر های خود را راه‌اندازی کنیم و از تنها یک ماشین تمام این کانتینرها را مورد بحث و بررسی و مدیریت قرار دهیم.


این تصویر توضیح بیشتری درباره ساختمان داکر سوارم می‌باشد.

در این مدل ارائه شده یک سرویس انجین ایکس وجود دارد؛ در این ساختار یک نود به عنوان سوارم منیجر یا مدیریت کننده سوارم معرفی شده و داکر کانتینرهایی با ایمیج nginx:latest در هر کدام از نود های این سوارم موجود می‌باشند.

به طور کلی داکر سوارم ابزاری برای ارکستریشن داکرهاست که به ما سرویس بسیار در دسترس و سریع و یک پارچه‌ای را ارائه می‌کند.

به طور مثال شما فکر کنید که در سیستم خود ۱۰۰ عدد کانتینر وجود دارد و شما باید برای مدیریت این ۱۰۰ داکر کانتینر یک سری فعالیت‌ها انجام‌دهیم که تعدادی از این فعالیت‌ها بدین صورت می‌باشد:

  • سلامت تمام کانتینر‌ها را بررسی کنیم.
  • مطمئن شویم تمام کانتینرها در تمام سیستم‌ها در حالت روشن قرار دارند.
  • بر مبنای لود سیستم کانتینر‌ها را کوچک و بزرگ کنیم.
  • به تمام کانتینرها فایل‌های مورد نیاز را اضافه کرده، آن‌ها را آپدیت کرده و تغییر دهیم.

در تعریف ارکستریتور چیست می‌توانیم اینطور بحث کنیم که یک ابزار مدیریت و کنترل کردن تعداد زیادی داکر کانتینر است که به عنوان یک سرویس و ابزار در دسترس قابل مشاهده می‌باشد.

به طور کلی یک ارکستریتور تمام اعمال بالا را برای ما انجام داده و در صورت از دسترس خارج شدن یکی از کانتینر‌ها به سرعت کانتینر جدیدی را برای ارائه خدمت در مدار قرار می‌دهد به صورتی که اصلا اختلالی در سیستم احساس نخواهد شد.

تعدادی از این ابزار ارکستریتور عبارت است از: Docker Swarm, Kubernetes, Apache Mesos

حداقل موارد مورد نیاز برای نصب داکر سوارم:

تنها ۲ چیز برای نصب داکر سوارم مورد نیاز است:

  • داکر نصب شده با حداقل ورژن ۱.۱۳
  • داکر ماشین.

از مسیر زیر می‌توانید این موضوع را مشاهده کنید.

https://docs.docker.com/machine/install-machine/#installing-machine-directly

در داکر سوارم جالب آن است که تمام سیستم‌عامل‌های مک، ویندوز و لینوکس می‌توانند به عنوان ورکری از سوارم منیجر شناخته شوند.

لینک پایین هم موضوعات بسیار مهمی برای شما دارد:

https://docs.docker.com/get-started/part4/

نصب داکر سوارم:

برای نصب داکر سوارم باید چندین قدم برداریم که قدم‌ها به شرح زیر است:

قدم اول:

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

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

docker-machine create --driver hyperv manager1 docker-machine create --drive virtualbox manager1

در این خط --driver مجازی ساز این اتفاق بوده و manager1 اسم نود سوار منیجر می‌باشد.

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

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

VBoxManage not found. Make Sure VirtualBox is installed and VBoxManager is in the path

یا

docker-machine:Error with pre-create check: &quotexit status 126&quot

را دریافت کردید از لینک زیر استفاده کنید.

https://stackoverflow.com/questions/38696164/docker-machineerror-with-pre-create-check-exit-status-126

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

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

docker-machine env manager1

در خط بالا منظور از manager1 اسم داکر ماشین سوارم منیجر می‌باشد.

در این قدم ابتدا داکر ماشین‌های مورد نظر خود را ساختیم.

قدم دوم:

در قدم دوم باید لیستی از ماشین‌های ساخته‌شده خود با استفاده از دستور زیر تهیه کنیم تا از وجود و صحت این ماشین‌ها کاملا مطمئن شویم:

docker-machine ls

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

docker-machine ip manager1

در خط بالا منظور از manager1 اسم داکر ماشین سوارم منیجر می‌باشد.

در ادامه ماشین‌های کارگر (worker) را می‌سازیم تا کلاستر داکر سوارم ما کامل شود.

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

docker-machine create --driver virtualbox worker1 docker-machine create --driver virtualbox worker2 docker-machine create --driver virtualbox worker3 ....

در نظر داشته باشید که تعداد ورکر‌های داکر سوارم می‌تواند با توجه به خواسته شما هر تعداد ممکن باشد.

قدم سوم:

در این قدم می‌خواهیم به داکر ماشین‌های ایجاد شده متصل شویم.

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

docker-machine ssh manager1

در خط بالا منظور از manager1 اسم داکر ماشین سوارم منیجر می‌باشد و شما می توانید ماشین مورد نظر خود را در این قسمت وارد کنید.

قدم چهارم:

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

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

docker swarm init --advertise-addr IP_SWARM_MANAGER

در خط بالا IP_SWARM_MANAGER نشانگر آی پی ماشین سوارم منیجر می‌باشد.

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

docker swarm join --token TOKEN IP:PORT

برای اضافه کردن ورکر به این سوارم منیجر تنها کافیست این دستور را در ورکرهای خود اجرا کنید.

در نظر داشته باشید که برای اضافه کردن یک منیجر به سوارم خود می‌توانید از دستور زیر استفاده کنید:

docker swarm join-token manager

که در خروجی این دستور روش اضافه کردن منیجر به سوارم و همچنین توکن این اتفاق به شما نمایش خواهد داده شد.

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

docker node ls

قدم پنجم:

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

در صورتی که توکن مورد نیاز خود را ندارید می‌توانیم از دو دستور زیر برای اضافه کردن ورکر و سوارم منیجر استفاده کنید:

docker swarm join-token worker docker swarm join-token manager

قدم ششم:

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

به طور مثال:

docker info

در نظر داشته باشید که در خروجی دستور بالا باید عبارت Swarm: active را مشاهده نمایید.

با استفاده از دستور زیر هم می‌توانید گزینه‌های استفاده از swarm را در نود سوارم منیجر خود استفاده کنید.

docker swarm

تا بدینجای بحث یاد گرفتیم که داکر سوارم چیست و ما چگونه می‌توانیم آن‌را نصب کنیم.

هفته بعد با قسمت دوم این مقاله در خدمت شما خواهیم بود.

می‌توانید نظرات و پیشنهادات خود را برای ادامه این مقاله و همچنین مقاله‌های دیگر در کامنت‌ها یا ایمیل s.m.javadi001@gmail.com با بنده در میان بگذارید.

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

با تشکر از شرکت ابرآراز که فرصت ارائه این مقاله را در اختیار من گذاشت.

داکر سوارمdocker swarmlinuxdockerداکر
شاید از این پست‌ها خوشتان بیاید