Mohammad Jawad Barati
Mohammad Jawad Barati
خواندن ۲ دقیقه·۴ سال پیش

کار با docker-compose

قبل از هر چیزی میخوام یه تعریف خوب از docker compose ارائه بدم؛

  • یه ابزار هست.
  • چند تا کانتینر رو به صورت همزمان میتونه اجرا بکنه.
  • یه فایل هست که توش تعریف میکنی چطوری باید اپلیکیشن هات راه اندازی بشن، چطوری با هم تعامل بکنن.


اجزای یه docker compose فایل



بخش services

توی این بخش میتونی اسم سرویس رو مشخص بکنی و بعدش دقیقا مشخص بکنی که اون سرویس چی هست.

بخش image

  • توی اینجا ایمیج base و ورژنش رو مشخص می کنیم.
  • البته میتونیم که یه ترفند خوب بزنیم و ورژن امیج رو از env فایل بخونیم.
  • نکته اینه که اگه ایمیج وجود نداشته باشه اون رو از docker registery میگیره (pull میکنه).
  • اگه شما swarm داشته باشی و روی یکی از نود ها اون ایمیج وجود نداشته باشه، از نود های دیگه اون ایمیج رو روی اون نود کپی میکنن.


بخش environment

  • توی این بخش میایم متغیر هایی رو که دوست داریم به کانتینر پاس بدیم مشخص می کنیم.
  • البته می تونیم این متغیر ها رو توی env فایل هم پاس بدیم.


بخش ports

  • توی این بخش میایم port mapping ها رو انجام میدیم.
  • مثلا 8080:80 یعنی اینکه کانتینر port مون 80 هست و port ای که قراره expose بشه 8080 هست.


بخش networks

  • توی این بخش میتونیم یک یا چند تا نتورک برای کانتینر مشخص بکنیم.
  • البته اگه نتورک رو مشخص نکنیم خود داکر برای اون docker compose میاد نتورک default میسازه که اسمش از COMPOSE_PROJECT_NAME توی env فایل گرفته میشه.
  • این بخش نتورک رو ایجاد نمیکنه (یه بخش جداگونه به اسم networks داریم که اون نتورک ها رو ایجاد میکنه)، بلکه فقط مشخص میکنه که من به کدوم نتورک وصل میشم.


بخش volumes

  • این جا میایم volume های کانتینر رو مشخص می کنیم.
  • توی همین جا هم میتونیم نوع volume و تنظیماتش رو مشخص بکنیم.



بخش networks

  • توی اینجا تنظیمات network های custom رو مشخص بکنیم.




بخش volumes

  • توی اینجا volume های custom رو مشخص می کنیم تا برامون بسازتش.




کامند های docker compose


برای ایجاد سرویس ها docker compose میتونی از کامند `docker-compose up` استفاده بکنی.

dockerdocker compose
برنانه نویس، مدرس، محقق. عاشق انیمه هستم و دنبال چالش ها جدید.
شاید از این پست‌ها خوشتان بیاید