نصب و راهاندازی محیط مجازی پروژه Python با Docker در ویندوز & لینوکس
دستهبندی: DevOps و برنامهنویسی پایتون | تاریخ: سوم شهریور ۱۴۰۴
در این مقاله یاد میگیریم چگونه در ویندوز و لینوکس یک محیط مجازی برای پروژههای Python با Docker راهاندازی کنیم.
۱. چرا Docker برای پروژههای پایتون؟
استفاده از Docker مزایای زیادی دارد:
- محیط ایزوله و مستقل برای هر پروژه
- حذف مشکلات ناسازگاری کتابخانهها
- قابلیت اجرا در هر سیستمعامل (ویندوز، لینوکس، مک)
- امکان استقرار سریع پروژهها روی سرورها
بهجای نصب چندین نسخه پایتون روی سیستم، میتوانید برای هر پروژه یک کانتینر اختصاصی بسازید.
۲. نصب Docker در ویندوز و لینوکس
ویندوز:
- ابتدا Docker Desktop را دانلود و نصب کنید.
- برای عملکرد بهتر، فعالسازی WSL2 (Windows Subsystem for Linux) توصیه میشود.
لینوکس (Ubuntu/Debian):
sudo apt update sudo apt install docker.io -y sudo systemctl start docker sudo systemctl enable docker
در لینوکس میتوانید Docker را بهصورت سرویس دائمی اجرا کنید.
نکته کلیدی
پس از نصب، با اجرای دستور docker --version
مطمئن شوید Docker بهدرستی نصب شده است.
۳. ساخت Dockerfile برای پروژه Python
در پوشه پروژه یک فایل بهنام Dockerfile
بسازید و محتوای زیر را داخل آن قرار دهید:
# انتخاب نسخه پایتون FROM python:3.10-slim # تنظیم پوشه کاری WORKDIR /app # کپی کردن فایلها COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . # اجرای پروژه CMD ["python", "app.py"]
این فایل مشخص میکند چه نسخه پایتون و چه کتابخانههایی برای اجرای پروژه نیاز است.
۴. ساخت ایمیج و اجرای کانتینر
پس از آمادهسازی Dockerfile، دستورات زیر را اجرا کنید:
# ساخت ایمیج docker build -t my-python-app . # اجرای کانتینر docker run -d -p 5000:5000 my-python-app
در این مثال پروژه روی پورت ۵۰۰۰ اجرا خواهد شد.
۵. مدیریت وابستگیها با requirements.txt
در فایل requirements.txt
لیست کتابخانههای مورد نیاز پروژه را وارد کنید:
flask==2.3.0 pandas==1.5.3 requests==2.31.0
Docker هنگام ساخت ایمیج این وابستگیها را نصب میکند و محیط پروژه شما یکپارچه خواهد شد.
توصیه مهم
همیشه فایل requirements.txt
را بهروز نگه دارید. این کار مانع بروز ناسازگاری بین توسعهدهندگان مختلف پروژه میشود.
۶. تفاوت اجرای Docker در ویندوز و لینوکس
- ویندوز: نیاز به Docker Desktop و فعالسازی WSL2 دارد. رابط گرافیکی سادهتری دارد.
- لینوکس: سبکتر و سریعتر است چون Docker مستقیماً روی کرنل اجرا میشود.
- در هر دو سیستم، فایلهای پیکربندی (Dockerfile و requirements.txt) یکسان باقی میمانند.
۷. مزایای Docker برای تیمهای توسعه
- امکان اشتراکگذاری سریع محیط پروژه بین اعضای تیم
- کاهش مشکلات «روی سیستم من کار میکند»
- استقرار سریعتر روی سرورهای تولید
- سازگاری با ابزارهای DevOps مثل Kubernetes
جمعبندی
Docker راهکاری حرفهای برای راهاندازی محیط مجازی پایتون است. چه در ویندوز و چه در لینوکس، تنها با چند خط کد میتوانید محیطی ایزوله و قابل تکرار بسازید. استفاده از Docker به توسعهدهندگان کمک میکند بدون نگرانی از ناسازگاری سیستمعامل یا نسخهها، روی توسعه پروژه تمرکز کنند. اگر تیمی کار میکنید یا قصد استقرار پروژه روی سرور را دارید، Docker انتخابی ضروری است.