سلام عرض میکنم خدمت شما خواننده عزیز که وقتتون رو در اختیار من گذاشتید تا درباره داکر بحث کنیم.
این مقاله چهارمین سری از سری مقالات آموزش داکر است و در این قسمت قصد داریم توضیحات تکمیلی و کلی درباره داکر کامپوز خدمت شما ارائه کنیم.
در قسمتهای قبل با کامندهای کلی داکر، دستورات آن چگونگی کار کردن داکر و این مورد که چطور میتوانیم یک داکر کانتینر را بسازیم بحث کردیم؛ در مقاله قبل هم درباره چگونگی نوشتن یک داکر فایل با یکدیگر تبادل اطلاعات کردیم و در این قسمت قرار است از یک داکر پای خود را فراتر گذاشته و وارد دنیای داکر کامپوزها شویم.
در نظر داشته باشید که این مقاله برای کسانی ساخته شده است که تا کنون تجربهای از کاربری داکر کامپوز و داکر نداشتهاند و در حال آشنایی با این مفاهیم میباشند. به همیندلیل توضیحات سطحی بوده و آپشنهای بسیار زیادی از داکر کامپوز و داکر مورد توضیح قرار نخواهند گرفت.
در این مقاله خواهیم خواند:
داکر کامپوز چیست و ما چرا به آن نیاز داریم؟
داکر کامپوز به طور کلی یک ابزار کارآمد برای ساخت و همگام کردن چند کانتینر برای ساختن یک اپلیکیشن با داکر است و به شما کمک میکند تا میکروسرویسسازی کنید.
در داکر کامپوز ما برای ساخت فایل آن از فرمت yaml استفاده میکنیم که یک فرمت مشهور بوده و به چشم ما آشناست برای همین کار کردن با آن زیاد مشکلساز نیست.
در داکر کامپوز میتوانیم تنها با یک دستور تمام سرویسهای خود را روشن کرده و خاموش کنیم:
docker-compose up
docker-compose down
دلیل دیگر استفاده ما از داکر کامپوز آن است که در زمان مورد نیاز به راحتی قابلیت گسترش دادن نرم افزار و scaling وجود دارد و این فرآیند انرژی زیادی از زیرساخت نمیگیرد.
چطور داکر کامپوز را نصب کنیم؟
در نظر داشته باشید که داکر کامپوز در سیستم عامل های مک و ویندوز همراه داکر نصب میگردند و نیازی به دوباره نصب کردن این ابزار نیست اما در سیستم عامل لینوکس نیاز است تا داکر کامپوز را نصب کنیم.
برای تست کردن این مورد که داکر کامپوز بر روی دستگاه شما نصب شده یا خیر از کامند زیر استفاده کنید:
docker-compose -v
در صورتی که این کامند جوابی حاصل نشد شما باید داکر کامپوز را بر روی دستگاه خود نصب نمایید.
دو راه برای نصب داکر کامپوز وجود دارد:
$ curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose
pip install -U 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.yaml خود را ساختهایم از دستور زیر استفاده کنیم:
docker-compose up -d
در این دستور فایل داکر کامپوز شما خوانده میشود، امیجهای مورد نظر شما از داکر هاب گرفته میشوند و داکرهای مورد نظر شما ساخته میشوند.
بعد از اجرا شدن این دستور میتوانید با استفاده از دستور زیر وضعیت داکرهای خود را مشاهده کنید.
docker-compose ps
با استفاده از این دستور هم میتوانید تمام سرویسهای ایجاد شده در داخل فایل داکر کامپوز خود را از دسترس خارج کرده و خاموش کنید.
docker-compose down
در نظر داشته باشید که این فایل داکر کامپوز ارائه شده خیلی سطحی بوده و عملا کار دقیقی انجام نمیدهد؛ در صورتی که نیاز به دیدن یک فایل نمونه از فایل داکر کامپوز nginx دارید میتوانید از این لینک ./ و قسمت docker-compose تنظیمات را خوانده و مرور کنید.
به طور مثال برای nginx:
web: image: nginx volumes: - ./templates:/etc/nginx/templates ports: - "8080:80" environment: - NGINX_HOST=foobar.com - NGINX_PORT=80
با تغییر دادن متغییرهای این فایل میتوانید سرویس مورد نظر خود برای nginx را در فایل داکر کامپوز ارائه نمایید.
مثلا با توجه به این فایل ما فایل داکر کامپوز خود را به روش زیر تغییر میدهیم.
version: ‘3’ services: web: image: nginx ports: - 9090:80/tcp database: image: redis
بعد از این تغییر داکر کامپوز خود را روشن میکنیم و مشاهده میکنیم که سرویس nginx بر روی پورت ۹۰۹۰ دستگاه در حال سرویسدهی است.
چگونه سرویسهای خود را گسترش دهیم؟
در حالت عادی در صورتی که از میکروسرویس استفاده کنید نیاز دارید در هر زمان هر کدام از سرویسهای خود را گسترش دهید.
با سوییچ --scale میتوانید داکر کامپوز خود را در سرویس مورد نظر به تعداد مورد نظر گسترش دهید.
docker-compose up -d --scale YOURSERVICE=NUMBER
به طور مثال دستور زیر ۴ کانتینر از سرویس دیتا بیس را میسازد.
docker-compose up -d --scale database=4
با تشکر از شما که تا بدینجای مقاله با من همراه بودید و در یاد گرفت داکر من را همراهی کردید.
امیدوارم این مقاله برای شما مفیده بوده باشد؛ در هفتههای آینده با آموزشهای پیچیده و عمیقتر با موضوع داکر در خدمت شما خواهیم بود.
با تشکر از شما و تیم ابر آراز که فرصت نوشتن این مقالات را در اختیار من گذاشتند.
ابرآراز ارائهدهنده سرویسهای تماما ابری بوده و میتواند نیازهای پردازشی و سروری شما را در سریعترین زمان ممکن حل کند: