ESC را فشار دهید تا بسته شود

زمیوس آموزش، یادگیری و سرگرمی

راهنمای جامع داکر: نحوه استفاده از Docker برای توسعه سریع‌تر برنامه‌ها

مقدمه

امروزه ابزارهای مختلفی برای ساده‌سازی فرآیندهای توسعه نرم‌افزار در دسترس هستند که یکی از مهم‌ترین این ابزارها داکر است.

داکر به شما این امکان را می‌دهد که برنامه‌ها را در محیط‌های ایزوله اجرا کنید و به این ترتیب به راحتی می‌توانید اپلیکیشن‌ها و سرویس‌ها را در هر محیطی که بخواهید، بدون دغدغه مشکلات وابستگی‌ها و تنظیمات، اجرا کنید.

این مقاله مهندسی داده به صورت جامع و کامل به معرفی داکر، مفاهیم کلیدی آن مانند Dockerfile، Docker Compose و معماری داکر پرداخته و دستورات کاربردی آن را به شما معرفی می‌کند.

اگر می خواهید در با مفهوم Apache Hadoop در بخش Data Engineering بیشتر آشنا بشید، نوشته زیر را مطالعه کنید:

در این نوشته شما می خوانید

داکر چیست؟

داکر یک پلتفرم برای بسته‌بندی، توزیع و اجرای برنامه‌ها در کانتینرها است.

این کانتینرها به شما اجازه می‌دهند که برنامه‌ها را در محیط‌های ایزوله و مستقل از سیستم‌عامل میزبان اجرا کنید.

داکر به عنوان یک ابزار قدرتمند، باعث می‌شود که توسعه‌دهندگان به راحتی برنامه‌ها را در هر محیطی، از توسعه تا تولید، اجرا کنند.

🔷 ویژگی‌های داکر:

  • ایزوله‌سازی: برنامه‌ها در کانتینرهای ایزوله اجرا می‌شوند که باعث جلوگیری از تداخل محیط‌ها و وابستگی‌ها می‌شود.
  • قابلیت حمل و نقل: ایماژهای داکر قابل جابجایی هستند، به این معنی که می‌توانید آن‌ها را از یک محیط به محیط دیگر منتقل کنید.
  • مقیاس‌پذیری: داکر به شما این امکان را می‌دهد که برنامه‌های خود را مقیاس‌پذیر کنید و در محیط‌های توزیع‌شده اجرا کنید.

کانتینر (Container) چیست؟

کانتینرها واحدهای ایزوله‌شده‌ای هستند که شامل یک برنامه و تمام وابستگی‌های آن می‌شوند.

هر کانتینر مستقل از سیستم‌عامل میزبان و دیگر کانتینرها عمل می‌کند.

این ویژگی باعث می‌شود که برنامه‌ها بدون دغدغه تفاوت‌های سیستم‌عامل یا محیط‌های مختلف اجرا شوند.

🔷 مزایای کانتینرها:

  • صرفه‌جویی در منابع: کانتینرها منابع کمتری مصرف می‌کنند و نسبت به ماشین‌های مجازی سریع‌تر و سبک‌تر هستند.
  • اجرای سریع: کانتینرها به سرعت راه‌اندازی می‌شوند و زمان مورد نیاز برای استقرار برنامه‌ها به حداقل می‌رسد.
  • ایزوله‌سازی: هر کانتینر به طور مستقل اجرا می‌شود و به این ترتیب هیچ تداخلی با سایر برنامه‌ها ندارد.

Dockerfile چیست؟

Dockerfile یک فایل متنی است که دستوراتی را برای ساخت ایماژهای داکر (تصاویر داکر) تعیین می‌کند.

این فایل به داکر می‌گوید که چگونه یک ایماژ جدید بسازد، چه نرم‌افزارهایی را نصب کند، کدام فایل‌ها را کپی کند و در نهایت کانتینر را اجرا کند.

🔷 ساختار Dockerfile:

  • FROM: ایمیج پایه‌ای که از آن شروع می‌شود.
  • RUN: دستورات برای نصب نرم‌افزارها یا انجام تنظیمات.
  • COPY: کپی کردن فایل‌ها به داخل کانتینر.
  • CMD: دستور پیش‌فرض برای اجرای اپلیکیشن.
  • WORKDIR: تعیین دایرکتوری کاری برای اجرای دستورات بعدی.

نمونه Dockerfile:

				
					# entekhab yek image paye
FROM ubuntu:20.04

# nasb narf afzar haye lazem
RUN apt-get update && apt-get install -y python3 python3-pip

# copy kardan file dakhel container
COPY . /app

# set kardan dir for amaliat
WORKDIR /app

# nasb vabastegiha
RUN pip3 install -r requirements.txt

#  dastoor pish farz baraye run kardan application
CMD ["python3", "app.py"]

				
			

در این Dockerfile، از ایمیج پایه ubuntu:20.04 استفاده می‌شود و سپس نرم‌افزارهای لازم نصب و فایل‌های پروژه کپی می‌شوند.

در نهایت اپلیکیشن با دستور python3 app.py اجرا می‌شود.

Docker Compose چیست؟

Docker Compose ابزاری است که به شما امکان می‌دهد چندین کانتینر داکر را به طور همزمان مدیریت کنید.

به طور معمول از این ابزار برای تنظیم و راه‌اندازی محیط‌های پیچیده‌تر استفاده می‌شود که نیاز به تعامل بین سرویس‌های مختلف دارند، مانند پایگاه داده، کش و سایر سرویس‌ها.

نمونه فایل docker-compose.yml:

				
					version: '3'
services:
  web:
    image: myapp:latest
    ports:
      - "۸۰۸۰:۸۰"
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: example

				
			

در این فایل، دو سرویس تعریف شده است:

  1. web: که از ایمیج myapp:latest استفاده می‌کند و پورت ۸۰۸۰ را به پورت ۸۰ کانتینر مپ می‌کند.

  2. db: که از ایمیج postgres:latest استفاده می‌کند و رمز عبور پایگاه داده را با استفاده از متغیر محیطی تنظیم می‌کند.

برای راه‌اندازی این سرویس‌ها، کافی است از دستور زیر استفاده کنید:

				
					docker compose up

				
			

معماری داکر

معماری داکر شامل اجزای مختلفی است که در کنار هم برای ساخت، مدیریت و اجرای کانتینرها عمل می‌کنند.

اجزای اصلی معماری داکر عبارتند از:

  • Docker Engine: موتور اصلی داکر که عملیات ساخت و اجرای کانتینرها را مدیریت می‌کند.
  • Docker Daemon (dockerd): سرویس دائمی است که درخواست‌ها را از Docker CLI دریافت و اجرا می‌کند.
  • Docker CLI: رابط خط فرمان است که برای تعامل با داکر استفاده می‌شود.
  • Docker Hub: مخزن آنلاین است که به کاربران این امکان را می‌دهد تا ایمیج های داکر را به اشتراک بگذارند و دانلود کنند.

دستورات کاربردی داکر

در این بخش، دستورات مهم و کاربردی داکر را بررسی می‌کنیم.

دستور docker build

برای ساخت ایمیج از Dockerfile:

				
					docker build -t myapp .

				
			

دستور docker run

برای اجرای یک کانتینر از ایمیج ساخته شده:

				
					docker run -d -p 8080:80 myapp

				
			

دستور docker ps

برای مشاهده کانتینرهای در حال اجرا:

				
					docker ps

				
			

دستور docker exec

برای اجرای دستورات داخل یک کانتینر:

				
					docker exec -it container_name bash

				
			

دستور docker logs

برای مشاهده لاگ‌های یک کانتینر:

				
					docker logs container_name_or_id

				
			

دستور docker stop

برای متوقف کردن یک کانتینر:

				
					docker stop container_name_or_id

				
			

دستور docker rm

برای حذف یک کانتینر:

				
					docker rm container_name_or_id

				
			

مزایای داکر

  • ایزوله‌سازی: داکر برنامه‌ها را از سیستم‌عامل میزبان ایزوله کرده و از تداخل بین برنامه‌ها جلوگیری می‌کند.
  • قابلیت حمل و نقل: ایماژهای داکر قابل حمل هستند و می‌توانید آن‌ها را بین محیط‌های مختلف جابجا کنید.
  • مقیاس‌پذیری: به راحتی می‌توانید برنامه‌های خود را مقیاس‌بندی کرده و در محیط‌های توزیع‌شده اجرا کنید.
  • صرفه‌جویی در منابع: کانتینرها منابع کمتری مصرف می‌کنند و نسبت به ماشین‌های مجازی سریع‌تر و سبک‌تر هستند.

سوالات متداول درباره Docker

داکر یک پلتفرم متن‌باز است که به شما امکان می‌دهد برنامه‌ها را در کانتینرهای ایزوله اجرا کنید.

این ابزار به دلیل قابلیت حمل و نقل، مقیاس‌پذیری، و ایزوله‌سازی برنامه‌ها از دیگر ابزارها محبوب‌تر شده است.

Dockerfile یک فایل متنی است که دستورات لازم برای ساخت ایماژهای داکر را تعریف می‌کند.

با استفاده از Dockerfile می‌توانید نرم‌افزارها و وابستگی‌های مورد نیاز برای اجرای یک برنامه را به طور خودکار نصب و تنظیم کنید.

Docker Compose ابزاری است که به شما اجازه می‌دهد چندین کانتینر داکر را همزمان راه‌اندازی و مدیریت کنید.

این ابزار برای پروژه‌هایی که نیاز به چندین سرویس دارند (مانند پایگاه داده، کش و وب‌سرویس) بسیار مفید است.

برای اجرای یک کانتینر از ایماژ داکر، کافی است از دستور docker run استفاده کنید.

به عنوان مثال، برای اجرای کانتینر از ایماژ myapp می‌توانید از دستور زیر استفاده کنید:

#docker run -d -p 8080:80 myapp

نتیجه‌گیری

داکر یکی از بهترین ابزارهای موجود برای توسعه، تست و استقرار برنامه‌ها است.

با استفاده از داکر، توسعه‌دهندگان می‌توانند برنامه‌ها و سرویس‌ها را در محیط‌های ایزوله و مقیاس‌پذیر اجرا کنند.

این ابزار با ویژگی‌هایی همچون ایزوله‌سازی، قابلیت حمل و نقل و مقیاس‌پذیری به یکی از استانداردهای صنعت نرم‌افزار تبدیل شده است.

اگر شما نیز به دنبال بهبود فرآیندهای توسعه خود و کاهش مشکلات محیطی هستید، یادگیری و استفاده از داکر قطعاً برای شما مفید خواهد بود.

📢 نظر شما چیست؟ اگر شما هم اطلاعات و تجربه خوبی در استفاده از داکر و داکر فایل دارید خوشحال میشم در بخش نظرات، تجربه های ارزشمندتان را با ما به اشتراک بگذارید! 🚀

سؤالی درباره این مقاله داری؟

اگر نکته‌ای در این مقاله برات مبهم بود یا خواستی بیشتر بدونی، همین حالا برام بنویس تا دقیق و صمیمی پاسخت رو بدم — مثل یه گفت‌وگوی واقعی 💬

برو به صفحه پرسش و پاسخ

میثم راد

من یه برنامه نویسم که حسابی با دیتابیس اوراکل رفیقم! از اونایی ام که تا چیزی رو کامل نفهمم،ول کن نیستم، یادگرفتن برام مثل بازیه، و نوشتن اینجا کمک می کنه تا چیزایی که یاد گرفتم رو با بقیه به شریک بشم، با هم پیشرفت کنیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *