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

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

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

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


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

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

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

  • چگونه داکر سوارم بسازیم و آن‌را مدیریت کنیم؟
  • چگونه در داکر سوارم سرویس بسازیم؟
  • چگونه داکر سوارم را گسترش داده یا محدود کنیم؟

شروع کار با دستورات مدیریتی داکر سوارم:

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

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

docker swarm

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

  • ca:این گزینه به شما مدیر یا root CA را نمایش می‌دهد.
  • Init: این گزینه سوارم را در حالت مقدماتی قرار می‌دهد.
  • join: با این گزینه می‌توایند داخل یک نود سوارم وارد شوید.
  • join-token: این گزینه می‌توانید توکن‌های دسترسی به سوارم را مدیریت کنید.
  • Leave:با این دستور می‌توانید سوارم را ترک کنید.
  • unlock: با این دستور می‌توانید سوارم را از حالت قفل خارج کنید.
  • unlock-key: با استفاده از دستور زیر می‌توانید کلید‌های باز کردن قفل سوارم را مدیریت کنید.
  • update: با این گزینه می‌توانید سوارم خود را آپدیت کنید.

شروع کردن و ساخت داکر کانتینر در داکر سوارم:

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

docker service create --replicas 2 -p 80:80 --name serviceName nginx

دستور بالا یک سرویس داکر سوارم ساخته که نامش serviceName می‌باشد؛ این سرویس ارائه‌دهنده یک nginx بوده و این سرویس از پورت 80 هاست ارائه دهنده در دسترس خواهد بود.

نکته مهم و نا معمول در این دستور قسمت --replicas بوده که مختص سوارم می‌باشد و اینطور معنا می‌‌شود که تعداد ۲ کانینر از این نوع کانتینر موجود بساز تا در صورت از دسترس خارج شدن به سرعت کانتینر رزرو وارد چرخه شود.

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

docker service ls

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

docker service ps serviceName

خروجی دستور بالا شبیه دستور docker ps بوده و می‌توانید مشاهدات دقیقی در این قسمت داشته باشید.

چگونه سرویس‌های خود را گسترش داده یا کوچک کنیم؟

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

docker service scale serviceName=2

دستور بالا این‌گونه کار می‌کند که باید به جای serviceName از سرویس مورد نظر خود در سوارم استفاده کنید و بعد از آن به جای عدد از تعداد ریپلیکای مورد نیاز خود در سوارم مورد نظر استفاده کنید.

در دستور بالا سرویس serviceName دارای ۲ ریپلیکا یا کانتینر خواهد شد.

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

در نظر داشته باشید که در دستور docker service ps به شما ارائه می‌دهد که هر داکر در داخل کدام نود در حال کار کردن است و شما می‌توانید با وارد شدن به آن نود و گرفتن دستور docker ps تمام اتفاقات داکر را با کانتینر مورد نظر استفاده کنید.

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

docker node inspect nodename

که در قسمت nodename اسم نود مورد نظر خود مثلا worker2 را وارد می‌کنیم.

دستور inspect به شما اطلاعات کامل درباره نود مورد نظر داده و می‌توانید مشکلات خود را به خوبی در این قسمت یافته و فرآیند حل کردن مشکل را سریع‌تر کنید.

آپدیت کردن و خاموش کردن نودهای داکر سوارم:

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

docker node update ...
docker service update ...

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

docker node update --availability drain worker1

این دستور نود worker1 را در حالت خاموش قرار می‌دهد.

یکی دیگر از آپیدت‌هایی که ممکن است بسیار در داخل داکر سوارم مورد نظر استفاده شود آپدیت کردن ایمیج یک سرویس می‌باشد که به طور کلی به صورت زیر اتفاق می‌افتد:

docker service update --image <imagename>:<version> serviceName

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

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

docker service rm serviceName

با دستور زیر می‌توانید سوارم خود را ترک کنید

docker swarm leave

در نظر داشته باشید که بعد از خارج شدن از سوارم حالت نود به down تغییر می‌کند.

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

docker-machine stop machinName

استفاده کنید.

همچنین برای حذف کردن یک نود می‌توانید از دستور زیر استفاده کنید:

docker-machine rm machinName

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

https://rominirani.com/docker-swarm-tutorial-b67470cf8872

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

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

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