در هفتمین قسمت از سری آموزشهای استفاده از داکر، به سراغ قسمت دوم از داکر سوارم رفته و توضیحات کلی و تکمیلی بحث هفته گذشته را ادامه خواهیم داد. در قسمتهای قبلی با دستورات داکر، روش ساخت داکر فایل، ساخت داکر کامپوز فایل و استفاده از داکر کامپوز و چیستی داکر والیوم و استفاده از آن و چیستی داکر سوارم و نحوه نصب این ابزار قدرتمند را با یکدیگر آموختیم و حالا نوبت آن است تا به قسمت دیگری از دنیای داکر یعنی تنظیم و استفاده از docker swarm بپردازیم.
در نظر داشته باشید که این مقاله برای کسانی نوشته شده از که تا کنون تجربهای از کارکردن با داکر نداشته و این سلسله مقالات اولین تجربه مواجهه آنها با داکر میباشد. به همین دلیل توضیحات اصولا سطحی و در دسترس بوده و گزینههای جانبی زیادی را بررسی نمیکنیم.
ما در قسمت قبل از مجموعه آموزشهای داکر ، در مورد آموزش استفاده از داکر و داکر سوارم با هم صحبت کردیم؛ پیشنهاد میکنیم فرصت مطالعهی این مقاله را از دست ندهید.
در این مقاله خواهیم خواند
- چگونه docker swarm بسازیم و آنرا مدیریت کنیم؟
- چگونه در داکر سوارم سرویس بسازیم؟
- چگونه docker swarm را گسترش داده یا محدود کنیم؟
شروع کار با دستورات مدیریتی داکر سوارم
در این مرحله میخوایم شروعی بر دستورات مدیریتی در docker swarm داشته باشیم. برای تحقق این امر از دستور زیر استفاده میکنیم:
docker swarm
لیست گزینهها و ابزارهای مورد استفاده در داکر سوارم
در پاسخ به دستور بالا یک لیست از گزینهها و ابزار استفاده از 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
با تشکر از شما که امروز در بررسی اولیه داکر سوارم با ما همراه بودید.
[box type=”info” align=”” class=”” width=””]
دلیل انتخاب سرورهای ابر آراز چه می تواند باشد؟ در ابر آراز شما شاهد ارائه ی کلیه سرویس ها با بالاترین سرعت و امنیت هستید. همچنین ابر آراز با ارائه ی خدمات پشتیبانی 24 ساعته و رایگان در خدمت شماست، تا در صورت بروز هرگونه مشکلی در سریعترین زمان ممکن مشکل شما را رفع نماید.