سلامی دوباره خدمت شما همراهان هفتگی سری مقالات استفاده از داکر؛ از شما متشکرم که در ۷ هفته گذشته با من همراه بودین و در مسیر نگاهی به داکر و استفاده پایهای از این ابزار قدرتمند بنده را یاری کردید.
در هفتمین قسمت از سری آموزشهای استفاده از داکر باز هم به سراغ داکر سوارم رفته و توضیحات کلی و تکمیلی در ادامه بحث هفته گذشت با همدیگر خواهیم داشت.
در قسمتهای قبلی با دستورات داکر، روش ساخت داکر فایل، ساخت داکر کامپوز فایل و استفاده از داکر کامپوز و چیستی داکر والیوم و استفاده از آن و چیستی داکر سوارم و نحوه نصب این ابزار قدرتمند را با یکدیگر آموختیم و حالا نوبت آن است تا به قسمت دیگری از دنیای داکر یعنی تنظیم و استفاده از داکر سوارم بپردازیم.
در نظر داشته باشید که این مقاله برای کسانی نوشته شده از که تا کنون تجربهای از کارکردن با داکر نداشته و این سلسله مقالات اولین تجربه مواجهه آنها با داکر میباشد به همین دلیل توضیحات اصولا سطحی و در دسترس بوده و گزینههای جانبی زیادی را بررسی نمیکنیم.
در این مقاله خواهیم خواند:
شروع کار با دستورات مدیریتی داکر سوارم:
در این مرحله میخوایم شروعی بر دستورات مدیریتی در داکر سوارم داشته باشیم.
برای تحقق این امر از دستور زیر استفاده میکنیم:
docker swarm
در پاسخ به این دستور یک لیست از گزینهها و ابزار استفاده از داکر سوارم به ما نمایان میشود که از این قرار هستند:
شروع کردن و ساخت داکر کانتینر در داکر سوارم:
به طور کلی میتوانید به سادگی و با استفاده از دستوری شبیه دستور زیر داکر کانتینر مورد نظر خود را در داخل سوارم ساخته و وارد پروداکشن خود نمایید.
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 با بنده در میان بگذارید.
با تشکر از شما که امروز در بررسی اولیه و نصب داکر سوارم با من همراه بودید.