آموش استفاده از داکر/ قسمت چهارم docker compose [قسمت ۴]
این مقاله چهارمین سری از سری مقالات آموزش داکر است و در این قسمت قصد داریم توضیحات تکمیلی و کلی درباره docker compose خدمت شما ارائه کنیم. در قسمتهای قبل با کامندهای کلی داکر، دستورات آن چگونگی کار کردن داکر و این مورد که چطور میتوانیم یک داکر کانتینر را بسازیم بحث کردیم؛ در مقاله قبل هم درباره چگونگی نوشتن یک داکر فایل با یکدیگر تبادل اطلاعات کردیم و در این قسمت قرار است از یک داکر پای خود را فراتر گذاشته و وارد دنیای داکر کامپوزها شویم.
در نظر داشته باشید که این مقاله برای کسانی ساخته شده است که تا کنون تجربهای از کاربری داکر کامپوز docker compose و داکر نداشتهاند و در حال آشنایی با این مفاهیم میباشند. به همیندلیل توضیحات سطحی بوده و آپشنهای بسیار زیادی از داکر کامپوز و داکر مورد توضیح قرار نخواهند گرفت.
در این مقاله خواهیم خواند:
- چرا داکر کامپوز و docker compose چگونه کار میکند؟
- چطور میتوانیم یک docker compose بسازیم؟
- چگونه از فایل داکر کامپوز استفاده کنیم تا یک سرویس بسازیم؟
- دستورات پایهای داکر کامپوز چیست؟
داکر کامپوز چیست و ما چرا به آن نیاز داریم؟
docker compose به طور کلی یک ابزار کارآمد برای ساخت و همگام کردن چند کانتینر برای ساختن یک اپلیکیشن با داکر است و به شما کمک میکند تا میکروسرویسسازی کنید.
در داکر کامپوز ما برای ساخت فایل آن از فرمت yaml استفاده میکنیم که یک فرمت مشهور بوده و به چشم ما آشناست برای همین کار کردن با آن زیاد مشکلساز نیست.
در داکر کامپوز میتوانیم تنها با یک دستور تمام سرویسهای خود را روشن کرده و خاموش کنیم:
docker-compose up
docker-compose down
دلیل دیگر استفاده ما از داکر کامپوز آن است که در زمان مورد نیاز به راحتی قابلیت گسترش دادن نرم افزار و scaling وجود دارد و این فرآیند انرژی زیادی از زیرساخت نمیگیرد.
چطور داکر کامپوز را نصب کنیم؟
در نظر داشته باشید که داکر کامپوز در سیستم عامل های مک و ویندوز همراه داکر نصب میگردند و نیازی به دوباره نصب کردن این ابزار نیست اما در سیستم عامل لینوکس نیاز است تا داکر کامپوز را نصب کنیم. برای تست کردن این مورد که docker compose بر روی دستگاه شما نصب شده یا خیر از کامند زیر استفاده کنید:
docker-compose -v
در صورتی که این کامند جوابی حاصل نشد شما باید داکر کامپوز را بر روی دستگاه خود نصب نمایید. برای آموزش نصب داکر کمپوز برروی سیستم عامل های مختلف مقالهی داکر کامپوز docker compose چیست را در بلاگ ابر آراز مطالعه نمایید.
چگونه میتوانیم یک فایل docker compose بسازیم؟
شما میتوانید در هر نقطه از دستگاه خود که علاقه دارید یک فایل به نام docker-compose.yml یا هر فایل دیگه ای با فرمت yaml بسازیم (در صورتی که نام فایل خود را تغییر دهید باید با سوییچ -f آن را به دستورات داکر کامپوز بشناسانید.)
در ابتداییترین خط تنظیمات خود ورژن داکر کامپوز مورد استفاده خود را مطرح میکنیم و سپس باید سرویس خود را معرفی کنید (services) در ادامه نام سرویسهای خود (web, database , …)را در زیر این سرویس مینویسیم و در ذیل این سرویس معرفی شده ایمیجی که از روی آن باید سرویس ما ساخته شود را ارائه میکنیم که در مثال زیر ما از ایمیج nginx استفاده کردهایم.
در ادامه سرویس دوم را نیز معرفی کرده و برای این سرویس از ایمیج redis برای دیتابیس استفاده میکنیم.
version: ‘3’ :services :web image: nginx :database image: redis
در این قسمت ما میتوانیم با استفاده از دستور زیر درستی فایل خود را چک نماییم.
docker-compose config
در صورتی که این کامند را اجرا کنید به طور کامل فایل شما بررسی شده و مشکل آن به شما ارائه گشته و حتی لینک تصحیح آن مشکل را نیز به شما ارائه میکند. در صورتی که اروری مشاهده نکنید میتوانید از صحت فایل خود مطمئن باشید.
چگونه فایل داکر کامپوز docker compose خود را اجرا کنیم؟
برای این کار تنها لازم است که در جایی که فایل docker-compose.yaml خود را ساختهایم از دستور زیر استفاده کنیم:
docker-compose up -d
در این دستور فایل داکر کامپوز شما خوانده میشود، امیجهای مورد نظر شما از داکر هاب گرفته میشوند و داکرهای مورد نظر شما ساخته میشوند.
بعد از اجرا شدن این دستور میتوانید با استفاده از دستور زیر وضعیت داکرهای خود را مشاهده کنید.
docker-compose ps
با استفاده از این دستور هم میتوانید تمام سرویسهای ایجاد شده در داخل فایل داکر کامپوز خود را از دسترس خارج کرده و خاموش کنید.
docker-compose down
در نظر داشته باشید که این فایل داکر کامپوز ارائه شده خیلی سطحی بوده و عملا کار دقیقی انجام نمیدهد؛ در صورتی که نیاز به دیدن یک فایل نمونه از فایل داکر کامپوز nginx دارید میتوانید از این لینک ./ و قسمت docker-compose تنظیمات را خوانده و مرور کنید.
به طور مثال برای nginx:
با تغییر دادن متغییرهای این فایل میتوانید سرویس مورد نظر خود برای nginx را در فایل داکر کامپوز ارائه نمایید. مثلا با توجه به این فایل ما فایل داکر کامپوز خود را به روش زیر تغییر میدهیم.
بعد از این تغییر داکر کامپوز خود را روشن میکنیم و مشاهده میکنیم که سرویس nginx بر روی پورت ۹۰۹۰ دستگاه در حال سرویسدهی است.
چگونه سرویسهای خود را گسترش دهیم؟
در حالت عادی در صورتی که از میکروسرویس استفاده کنید نیاز دارید در هر زمان هر کدام از سرویسهای خود را گسترش دهید.
با سوییچ –scale میتوانید داکر کامپوز خود را در سرویس مورد نظر به تعداد مورد نظر گسترش دهید.
docker-compose up -d --scale YOURSERVICE=NUMBER
به طور مثال دستور زیر ۴ کانتینر از سرویس دیتا بیس را میسازد.
docker-compose up -d --scale database=4
با تشکر از شما که تا اینجای مقاله با من همراه بودید و در یاد گرفتن داکر من را همراهی کردید. امیدواریم که این مقاله برای شما مفید بوده باشد.
چرا ابر آراز؟
ابر آراز برای سرویس های خود آپ تایم ۹۹/۹۹ درصد، با پشتیبانی ۲۴ ساعته و رایگان ارائه می دهد.