آموزش داکر رایگان از صفر تا صد؛ راهنمای عملی برای برنامه‌نویسان

آموزش داکر رایگان از صفر تا صد؛ راهنمای عملی برای برنامه‌نویسان

آیا تا به حال پیش آمده که برنامه‌تان روی سیستم خودتان اجرا شود اما روی سیستم همکارتان از کار بیفتد؟ آیا عبارت «روی سیستم من کار می‌کرده» را بارها شنیده‌اید؟ داکر دقیقاً برای حل همین مشکل ساخته شده است. آموزش داکر رایگان از صفر تا صد، موضوع این مقاله جامع است.

فهرست مطالب پنهان

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

در دنیای امروز، داکر به استانداردی برای ارائه نرم‌افزار تبدیل شده است. شرکت‌های بزرگ مانند گوگل، نتفلیکس و اسپاتیفای از داکر برای مدیریت زیرساخت خود استفاده می‌کنند. یادگیری داکر نه تنها رزومه شما را تقویت می‌کند، بلکه شما را به یک برنامه‌نویس حرفه‌ای‌تر تبدیل می‌کند. آموزش داکر رایگان این فرصت را در اختیار همه قرار می‌دهد.

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

✨ نکته کلیدی: داکر به شما کمک می‌کند برنامه‌های خود را یکپارچه و قابل حمل توسعه دهید. در ادامه همراه با آکادمی فگابین همراه باشید تا آموزش داکر رایگان را گام به گام پیش ببریم.

داکر چیست و چرا به آن نیاز داریم؟

تعریف داکر؛ تفاوت آن با ماشین مجازی

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

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

وقتی شما از ماشین مجازی استفاده می‌کنید، هر ماشین مجازی یک نسخه کامل از سیستمعامل (مثل ویندوز یا لینوکس) را اجرا می‌کند. این یعنی مصرف بالای رم و پردازنده. اما در داکر، همه کانتینرها از هسته سیستمعامل میزبان استفاده می‌کنند. این یعنی کانتینرها در کسری از ثانیه اجرا می‌شوند و منابع بسیار کمتری مصرف می‌کنند. آموزش داکر رایگان این مفهوم را به زبانی ساده توضیح می‌دهد.

برای درک بهتر، فرض کنید می‌خواهید چندین برنامه مختلف را روی یک سرور اجرا کنید. بدون داکر، باید نگران تداخل کتابخانه‌ها و تنظیمات باشید. اما با داکر، هر برنامه در کانتینر خودش اجرا می‌شود و کاملاً از دیگران جدا است. آموزش داکر رایگان به شما نشان می‌دهد چگونه این کار را انجام دهید.

مشکلاتی که داکر حل می‌کند

برای یک برنامه‌نویس، یکی از بزرگ‌ترین چالش‌ها «تطابق محیط» است. برنامه شما روی سیستم توسعه (لپ‌تاپ خودتان) درست کار می‌کند، اما روی سرور تست یا تولید از کار می‌افتد. دلیل این مشکل معمولاً تفاوت در نسخه کتابخانه‌ها، متغیرهای محیطی، یا تنظیمات سیستمعامل است. آموزش داکر رایگان راه حل قطعی این مشکل را به شما آموزش می‌دهد.

چالش دیگر، مدیریت وابستگی‌های برنامه است. برای اجرای یک برنامه وب معمولی، ممکن است نیاز به وب‌سرور (مثل Nginx)، دیتابیس (مثل MySQL یا PostgreSQL)، زبان برنامه‌نویسی (مثل Python یا Node.js) و کتابخانه‌های جانبی داشته باشید. نصب و تنظیم همه این مؤلفه‌ها زمان‌بر و پیچیده است. اما با داکر و آموزش داکر رایگان، می‌توانید همه این مؤلفه‌ها را در قالب کانتینرهای جداگانه تعریف کنید.

سومین چالش، مقیاس‌پذیری است. وقتی برنامه شما محبوب می‌شود، باید بتوانید آن را روی چندین سرور توزیع کنید. بدون داکر، این کار نیاز به تنظیمات دستی و زمان‌بر دارد. اما با داکر و ابزارهایی مثل Docker Swarm یا Kubernetes، می‌توانید برنامه خود را به سادگی روی صدها سرور توزیع کنید. آموزش داکر رایگان مقدمات این مسیر را برای شما فراهم می‌کند.

چهارمین چالش، یکپارچه‌سازی و تحویل پیوسته (CI/CD) است. تیم‌های حرفه‌ای نرم‌افزار از ابزارهایی مثل Jenkins، GitLab CI یا GitHub Actions برای خودکارسازی فرایند تست و استقرار استفاده می‌کنند. داکر به‌طور طبیعی با این ابزارها ادغام می‌شود و آموزش داکر رایگان به شما نشان می‌دهد چگونه از این قابلیت استفاده کنید.

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

مزیت اول: قابلیت حمل (Portability) – کانتینرهای داکر روی هر سیستمی که داکر نصب باشد، یکسان اجرا می‌شوند. شما می‌توانید برنامه خود را روی لپ‌تاپ بسازید، سپس بدون تغییر روی سرور ابری اجرا کنید. آموزش داکر رایگان این قابلیت را به شما آموزش می‌دهد.

مزیت دوم: ایزوله‌سازی (Isolation) – هر کانتینر کاملاً از دیگر کانتینرها جدا است. اگر یک کانتینر به هر دلیلی crash کند، کانتینرهای دیگر تحت تأثیر قرار نمی‌گیرند. این ویژگی امنیت و پایداری سیستم را افزایش می‌دهد. آموزش داکر رایگان به شما یاد می‌دهد چگونه از این ایزوله‌سازی بهره ببرید.

مزیت سوم: کارایی (Performance) – کانتینرهای داکر بسیار سبک‌تر از ماشین‌های مجازی هستند. آنها در کسری از ثانیه اجرا می‌شوند و منابع بسیار کمتری مصرف می‌کنند. شما می‌توانید ده‌ها کانتینر را روی یک سرور متوسط اجرا کنید. آموزش داکر رایگان این موضوع را با مثال عملی نشان می‌دهد.

مزیت چهارم: تکرارپذیری (Reproducibility) – با استفاده از Dockerfile، شما می‌توانید محیط اجرای برنامه خود را به صورت کد تعریف کنید. این یعنی می‌توانید محیط را دقیقاً همانطور که نیاز دارید، بارها و بارها بازسازی کنید. آموزش داکر رایگان به شما نشان می‌دهد چگونه Dockerfile بنویسید.

مزیت پنجم: جامعه بزرگ و پشتیبانی گسترده – داکر یکی از محبوب‌ترین ابزارهای متن‌باز در جهان است. هزاران ایمیج آماده در Docker Hub وجود دارد که می‌توانید از آنها استفاده کنید. آموزش داکر رایگان شما را با این اکوسیستم غنی آشنا می‌کند.

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

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

نصب داکر روی ویندوز

برای نصب داکر روی ویندوز، ابتدا باید اطمینان حاصل کنید که سیستم شما الزامات سخت‌افزاری را دارد: ویندوز 10 نسخه Pro، Enterprise یا Education (نسخه Home پشتیبانی کامل ندارد)، مجازی‌سازی فعال در BIOS، و حداقل 4 گیگابایت رم. آموزش داکر رایگان این الزامات را با جزئیات توضیح می‌دهد.

مراحل نصب داکر روی ویندوز:

  1. به وب‌سایت رسمی داکر مراجعه کرده و Docker Desktop برای ویندوز را دانلود کنید.
  2. فایل نصب را اجرا کرده و گزینه‌های پیش‌فرض را انتخاب کنید.
  3. پس از اتمام نصب، سیستم خود را مجدداً راه‌اندازی کنید.
  4. پس از راه‌اندازی، Docker Desktop به طور خودکار اجرا می‌شود.
  5. برای تست نصب، خط فرمان (Command Prompt) یا PowerShell را باز کرده و دستور docker --version را وارد کنید. آموزش داکر رایگان شما را در این مسیر قدم به قدم هدایت می‌کند.

اگر از ویندوز 10 Home استفاده می‌کنید، می‌توانید از Docker Toolbox استفاده کنید که بر پایه VirtualBox کار می‌کند. هرچند Docker Desktop تجربه بهتری ارائه می‌دهد. آموزش داکر رایگان تفاوت‌های این دو روش را توضیح می‌دهد.

نصب داکر روی مک (macOS)

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

  1. به وب‌سایت رسمی داکر مراجعه کرده و Docker Desktop برای مک را دانلود کنید.
  2. فایل DMG را باز کرده و آیکون Docker را به پوشه Applications بکشید.
  3. Docker Desktop را از پوشه Applications اجرا کنید.
  4. در اولین اجرا، داکر از شما رمز کاربری سیستم را می‌خواهد تا مجوزهای لازم را دریافت کند.
  5. پس از اجرای Docker Desktop، آیکون نهنگ در نوار وضعیت ظاهر می‌شود.

برای تست نصب، ترمینال را باز کرده و دستور docker --version را وارد کنید. همچنین می‌توانید با دستور docker run hello-world یک کانتینر تستی اجرا کنید. آموزش داکر رایگان به شما نشان می‌دهد چگونه از این دستورات استفاده کنید.

نصب داکر روی لینوکس (اوبونتو و سنت‌اواس)

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

مراحل نصب روی اوبونتو:

  1. ابتدا بسته‌های قبلی را حذف کنید:
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. مخزن رسمی داکر را اضافه کنید:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. نصب داکر:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. برای اجرای دستورات داکر بدون sudo، کاربر خود را به گروه docker اضافه کنید:
sudo usermod -aG docker $USER
  1. سیستم را مجدداً راه‌اندازی کرده یا از سیستم خارج و وارد شوید.
  2. برای تست، دستور docker run hello-world را اجرا کنید. آموزش داکر رایگان این مراحل را با جزئیات کامل پوشش می‌دهد.

برای توزیع سنت‌اواس یا RHEL، دستورات کمی متفاوت است. شما می‌توانید برای اطلاعات بیشتر، مستندات رسمی داکر را بررسی کنید.

مفاهیم پایه در داکر

H3: Image (ایمیج) چیست؟

ایمیج یک بسته قابل حمل و سبک است که شامل همه چیز برای اجرای یک برنامه است: کد، زمان اجرا، کتابخانه‌ها، متغیرهای محیطی و فایل‌های تنظیمات. در آموزش داکر رایگان، ایمیج را به عنوان «قالب» یا «طرح اولیه» در نظر می‌گیریم. شما می‌توانید از یک ایمیج، چندین کانتینر مجزا ایجاد کنید.

ایمیج‌ها به صورت لایه‌ای ساخته می‌شوند. هر دستور در Dockerfile یک لایه جدید ایجاد می‌کند. این لایه‌بندی باعث می‌شود ایمیج‌ها قابل اشتراک‌گذاری و کش شوند. وقتی شما یک ایمیج را تغییر می‌دهید، فقط لایه‌های تغییر یافته دوباره ساخته می‌شوند. آموزش داکر رایگان این مفهوم را با مثال عملی توضیح می‌دهد.

شما می‌توانید ایمیج‌های خود را بسازید یا از ایمیج‌های آماده در Docker Hub استفاده کنید. Docker Hub مخزنی از هزاران ایمیج رسمی و عمومی است. برای مثال، ایمیج رسمی Python، Node.js، MySQL، PostgreSQL و بسیاری دیگر در Docker Hub موجود است. آموزش داکر رایگان به شما یاد می‌دهد چگونه از این ایمیج‌ها استفاده کنید.

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

کانتینر یک نمونه قابل اجرا از یک ایمیج است. شما می‌توانید یک کانتینر را به عنوان «یک برنامه در حال اجرا» در نظر بگیرید. در آموزش داکر رایگان، تفاوت بین ایمیج و کانتینر را با یک مثال ساده توضیح می‌دهیم: ایمیج مانند یک فایل ISO ویندوز است و کانتینر مانند یک سیستم ویندوز نصب‌شده روی کامپیوتر.

کانتینرها از هم ایزوله هستند. هر کانتینر سیستم فایل، شبکه و فضای پردازشی خود را دارد. شما می‌توانید چندین کانتینر را همزمان روی یک سیستم اجرا کنید. آموزش داکر رایگان به شما نشان می‌دهد چگونه کانتینرها را مدیریت کنید.

شما می‌توانید کانتینرها را شروع، متوقف، جابجا یا حذف کنید. وقتی یک کانتینر را متوقف می‌کنید، وضعیت آن ذخیره می‌شود و می‌توانید دوباره آن را شروع کنید. وقتی یک کانتینر را حذف می‌کنید، تمام تغییراتی که در آن انجام داده‌اید (مثل فایل‌های ایجاد شده) از بین می‌رود. آموزش داکر رایگان نحوه مدیریت چرخه حیات کانتینرها را پوشش می‌دهد.

H3: Dockerfile و دستورات اصلی آن

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

دستورات اصلی در Dockerfile:

  • FROM: تعیین ایمیج پایه. مثال: FROM ubuntu:22.04 یا FROM python:3.11-slim
  • WORKDIR: تعیین دایرکتوری کاری در داخل کانتینر. مثال: WORKDIR /app
  • COPY: کپی فایل‌ها از میزبان به کانتینر. مثال: COPY . .
  • RUN: اجرای دستورات در حین ساخت ایمیج. مثال: RUN apt-get update && apt-get install -y curl
  • CMD: دستوری که هنگام اجرای کانتینر اجرا می‌شود (قابل بازنویسی). مثال: CMD ["python", "app.py"]
  • ENTRYPOINT: مشابه CMD اما غیرقابل بازنویسی. مثال: ENTRYPOINT ["python"]
  • EXPOSE: اعلام پورتی که کانتینر روی آن گوش می‌دهد. مثال: EXPOSE 8080
  • ENV: تعریف متغیر محیطی. مثال: ENV NODE_ENV=production

آموزش داکر رایگان هر یک از این دستورات را با مثال‌های عملی توضیح می‌دهد. در ادامه، یک مثال ساده از Dockerfile برای یک برنامه Python را مشاهده می‌کنید:

# Dockerfile ساده برای برنامه Python
FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "app.py"]

Docker Compose چیست و چه کاربردی دارد؟

Docker Compose ابزاری برای تعریف و اجرای برنامه‌های چندکانتینره است. با استفاده از Docker Compose، شما می‌توانید تمام سرویس‌های برنامه خود (مثل وب‌سرور، دیتابیس، کش، و …) را در یک فایل YAML تعریف کنید. آموزش داکر رایگان شما را با این ابزار قدرتمند آشنا می‌کند.

یک فایل docker-compose.yml ساده برای یک برنامه وب با دیتابیس MySQL به شکل زیر است:

version: '3.8'

services:
  web:
    build: .
    ports:
      - "8080:80"
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

با استفاده از Docker Compose، شما می‌توانید با یک دستور docker-compose up همه سرویس‌های برنامه خود را اجرا کنید. آموزش داکر رایگان به شما یاد می‌دهد چگونه از این ابزار برای توسعه و استقرار برنامه‌های خود استفاده کنید.

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

کار با کانتینرها – دستورات عملی

اجرای اولین کانتینر با دستور docker run

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

دستور docker run برای اجرای یک کانتینر جدید از یک ایمیج استفاده می‌شود. ساده‌ترین شکل آن:

docker run hello-world

این دستور ایمیج hello-world را از Docker Hub دانلود کرده (اگر قبلاً دانلود نشده باشد) و یک کانتینر از آن اجرا می‌کند.

برای اجرای یک کانتینر تعاملی (مثل اجرای یک شل)، از گزینه -it استفاده کنید:

docker run -it ubuntu bash

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

برای اجرای یک کانتینر در پس‌زمینه (detached mode)، از گزینه -d استفاده کنید:

docker run -d nginx

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

مدیریت کانتینرها (لیست، توقف، شروع و حذف)

برای مدیریت کانتینرها، داکر دستورات متعددی ارائه می‌دهد. آموزش داکر رایگان مهم‌ترین آنها را پوشش می‌دهد.

  • دیدن کانتینرهای در حال اجرا:
  docker ps
  • دیدن همه کانتینرها (شامل متوقف شده):
  docker ps -a
  • متوقف کردن یک کانتینر:
  docker stop <container_id_or_name>
  • شروع مجدد یک کانتینر متوقف شده:
  docker start <container_id_or_name>
  • حذف یک کانتینر (فقط در حالت متوقف):
  docker rm <container_id_or_name>
  • حذف یک کانتینر در حال اجرا با اجبار:
  docker rm -f <container_id_or_name>
  • حذف همه کانتینرهای متوقف شده:
  docker container prune

هر کانتینر یک شناسه یکتا (ID) و یک نام دارد. اگر نامی تعیین نکنید، داکر به طور خودکار یک نام تصادفی به کانتینر اختصاص می‌دهد. شما می‌توانید با گزینه --name نام دلخواه به کانتینر بدهید:

docker run -d --name my-nginx nginx

مشاهده لاگ‌های کانتینر و اجرای دستورات درون آن

برای مشاهده خروجی (stdout و stderr) یک کانتینر، از دستور docker logs استفاده کنید. آموزش داکر رایگان این قابلیت را به طور کامل توضیح می‌دهد.

docker logs <container_id_or_name>

برای دنبال کردن لاگ‌ها در زمان واقعی (مانند tail -f)، از گزینه -f استفاده کنید:

docker logs -f my-nginx

برای اجرای یک دستور در یک کانتینر در حال اجرا، از دستور docker exec استفاده کنید. این قابلیت برای عیب‌یابی و انجام تنظیمات موقت بسیار مفید است.

docker exec -it my-nginx bash

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

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

docker exec my-nginx ls -la /usr/share/nginx/html

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

ساخت ایمیج سفارشی با Dockerfile

نوشتن اولین Dockerfile برای یک برنامه ساده

حالا که با مفاهیم پایه آشنا شدید، وقت آن است که اولین ایمیج سفارشی خود را بسازید. آموزش داکر رایگان شما را در این مسیر قدم به قدم هدایت می‌کند.

فرض کنید یک برنامه Python ساده دارید که یک وب‌سرویس ارائه می‌دهد. ساختار پروژه شما به این شکل است:

myapp/
├── app.py
└── requirements.txt

فایل app.py:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello from Docker!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

فایل requirements.txt:

flask==2.3.0

حالا در همین دایرکتوری، یک فایل به نام Dockerfile (بدون پسوند) ایجاد کنید:

# استفاده از ایمیج پایه Python
FROM python:3.11-slim

# تعیین دایرکتوری کاری داخل کانتینر
WORKDIR /app

# کپی فایل requirements.txt
COPY requirements.txt .

# نصب وابستگی‌ها
RUN pip install --no-cache-dir -r requirements.txt

# کپی بقیه فایل‌ها
COPY . .

# اعلام پورت
EXPOSE 5000

# دستور اجرای برنامه
CMD ["python", "app.py"]

ساخت ایمیج با دستور docker build

برای ساخت ایمیج از Dockerfile، از دستور docker build استفاده کنید. آموزش داکر رایگان این فرایند را با جزئیات کامل توضیح می‌دهد.

docker build -t my-python-app .

توضیح گزینه‌ها:

  • -t my-python-app: تگ (نام و نسخه) ایمیج را تعیین می‌کند
  • .: مسیر Dockerfile (دایرکتوری جاری)

پس از اجرا، داکر هر دستور Dockerfile را اجرا کرده و لایه‌های ایمیج را می‌سازد. در انتها، ایمیج با نام my-python-app ساخته می‌شود.

برای دیدن لیست ایمیج‌های ساخته شده:

docker images

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

docker run -d -p 5000:5000 --name myapp my-python-app

حالا می‌توانید با مراجعه به http://localhost:5000 برنامه خود را مشاهده کنید. آموزش داکر رایگان این گام‌ها را کامل پوشش می‌دهد.

بهینه‌سازی Dockerfile برای کاهش حجم ایمیج

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

نکته ۱: استفاده از ایمیج پایه مناسب
به جای python:3.11 (حجم بالا)، از python:3.11-slim یا python:3.11-alpine استفاده کنید.

نکته ۲: ترکیب دستورات RUN
به جای:

RUN apt-get update
RUN apt-get install -y curl
RUN apt-get clean

از:

RUN apt-get update && apt-get install -y curl && apt-get clean

نکته ۳: حذف فایل‌های موقت

RUN pip install --no-cache-dir -r requirements.txt

نکته ۴: ترتیب مناسب لایه‌ها
مواردی که کمتر تغییر می‌کنند (مثل COPY requirements.txt و RUN pip install) را زودتر قرار دهید تا از کش استفاده شود.

نکته ۵: استفاده از .dockerignore
یک فایل .dockerignore ایجاد کنید و موارد غیرضروری (مثل .git، __pycache__، .env و …) را در آن قرار دهید.

مثال .dockerignore:

.git
__pycache__
*.pyc
.env
README.md

آموزش داکر رایگان این تکنیک‌ها را با جزئیات بیشتر توضیح می‌دهد.

کار با Docker Compose برای برنامه‌های چندکانتینره

نوشتن فایل docker-compose.yml

برای برنامه‌های واقعی، شما معمولاً بیش از یک سرویس دارید (وب‌سرور، دیتابیس، کش، و …). Docker Compose این کار را ساده می‌کند. آموزش داکر رایگان نحوه نوشتن فایل docker-compose.yml را به شما یاد می‌دهد.

مثال: یک برنامه وب با Flask و دیتابیس PostgreSQL

ساختار پروژه:

myapp/
├── app.py
├── requirements.txt
├── Dockerfile
└── docker-compose.yml

فایل docker-compose.yml:

version: '3.8'

services:
  web:
    build: .
    ports:
      - "5000:5000"
    environment:
      - DB_HOST=db
      - DB_NAME=mydb
      - DB_USER=postgres
      - DB_PASSWORD=secret
    depends_on:
      - db
    volumes:
      - .:/app

  db:
    image: postgres:15-alpine
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=secret
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

اجرا و مدیریت سرویس‌ها با docker-compose

پس از نوشتن فایل docker-compose.yml، می‌توانید همه سرویس‌ها را با یک دستور اجرا کنید. آموزش داکر رایگان دستورات اصلی را پوشش می‌دهد.

  • اجرای سرویس‌ها در پس‌زمینه:
  docker-compose up -d
  • اجرای سرویس‌ها در پیش‌زمینه (مشاهده لاگ‌ها):
  docker-compose up
  • متوقف کردن سرویس‌ها:
  docker-compose down
  • متوقف کردن سرویس‌ها و حذف حجم‌ها (volumes):
  docker-compose down -v
  • دیدن وضعیت سرویس‌ها:
  docker-compose ps
  • مشاهده لاگ‌های یک سرویس خاص:
  docker-compose logs web
  • بازسازی و راه‌اندازی مجدد سرویس‌ها:
  docker-compose up -d --build

آموزش داکر رایگان به شما نشان می‌دهد چگونه از Docker Compose برای توسعه و استقرار برنامه‌های چندکانتینره استفاده کنید.

برای مطالعه بیشتر در مورد Docker Compose، می‌توانید به مستندات رسمی Docker Compose مراجعه کنید.

اشتراک‌گذاری ایمیج‌ها با Docker Hub

ایجاد حساب کاربری و لاگین به Docker Hub

داکر هاب یک مخزن ابری برای ذخیره و به اشتراک‌گذاری ایمیج‌های داکر است. برای استفاده از داکر هاب، ابتدا باید یک حساب کاربری ایجاد کنید. آموزش داکر رایگان این مراحل را گام به گام برای شما توضیح می‌دهد.

مراحل ایجاد حساب در داکر هاب:

  1. به وب‌سایت hub.docker.com مراجعه کنید.
  2. روی دکمه Sign Up کلیک کنید.
  3. اطلاعات مورد نیاز (نام کاربری، ایمیل، رمز عبور) را وارد کنید.
  4. ایمیل خود را تأیید کنید.
  5. حالا می‌توانید از داکر هاب استفاده کنید.

برای لاگین به داکر هاب از طریق خط فرمان، از دستور زیر استفاده کنید:

docker login

سپس نام کاربری و رمز عبور خود را وارد کنید. آموزش داکر رایگان به شما یاد می‌دهد چگونه پس از لاگین، ایمیج‌های خود را آپلود کنید.

تگ کردن و آپلود ایمیج به Docker Hub

برای آپلود یک ایمیج به داکر هاب، ابتدا باید آن را با فرمت username/image-name:tag تگ کنید. آموزش داکر رایگان این فرایند را با جزئیات کامل پوشش می‌دهد.

دستور تگ کردن ایمیج:

docker tag my-python-app your-username/my-python-app:latest

در این دستور:

  • my-python-app: نام ایمیج محلی شما
  • your-username: نام کاربری شما در داکر هاب
  • my-python-app: نام ایمیج در مخزن
  • latest: تگ (نسخه) ایمیج

پس از تگ کردن، ایمیج خود را با دستور docker push آپلود کنید:

docker push your-username/my-python-app:latest

برای دانلود مجدد ایمیج از داکر هاب روی هر سیستم دیگری:

docker pull your-username/my-python-app:latest

آموزش داکر رایگان به شما نشان می‌دهد چگونه ایمیج‌های خود را مدیریت و به اشتراک بگذارید. برای آشنایی بیشتر با مدیریت ایمیج‌ها در داکر هاب، می‌توانید به مستندات Docker Hub مراجعه کنید.

شبکه‌ها و حجم‌های داده در داکر

ایجاد و مدیریت شبکه‌های سفارشی

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

دستور ایجاد شبکه جدید:

docker network create my-network

برای اجرای یک کانتینر در یک شبکه خاص:

docker run -d --name app1 --network my-network nginx

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

docker network connect my-network app2

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

docker network ls

برای بررسی جزئیات یک شبکه:

docker network inspect my-network

آموزش داکر رایگان این مفاهیم را با مثال‌های عملی توضیح می‌دهد.

استفاده از Volume برای ذخیره‌سازی پایدار داده

به طور پیش‌فرض، داده‌های داخل کانتینر با حذف آن از بین می‌روند. برای ذخیره پایدار داده، باید از Volume استفاده کنید. آموزش داکر رایگان این قابلیت حیاتی را به طور کامل پوشش می‌دهد.

ایجاد یک Volume جدید:

docker volume create my-data

استفاده از Volume هنگام اجرای کانتینر:

docker run -d --name db -v my-data:/var/lib/mysql mysql

با استفاده از Bind Mount (اتصال دایرکتوری میزبان به کانتینر):

docker run -d --name app -v /host/path:/container/path nginx

دیدن لیست Volumeها:

docker volume ls

حذف یک Volume:

docker volume rm my-data

💡 نکته مهم: در آموزش داکر رایگان توصیه می‌کنیم برای داده‌های مهم حتماً از Volume استفاده کنید تا در صورت حذف کانتینر، اطلاعات شما از بین نرود.

عیب‌یابی و ترفندهای پیشرفته

عیب‌یابی رایج‌ترین مشکلات داکر

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

مشکلراه‌حل
پورت از قبل استفاده می‌شود (port already in use)پورت را تغییر دهید یا برنامه در حال استفاده از پورت را متوقف کنید
فضای دیسک پر است (no space left on device)دستور docker system prune -a را برای پاکسازی اجرا کنید
کانتینر بلافاصله پس از اجرا متوقف می‌شودلاگ‌ها را با docker logs بررسی کنید
دسترسی به اینترنت از داخل کانتینر وجود نداردشبکه داکر را ریست کنید: docker network prune

دستور پاکسازی کامل منابع استفاده نشده:

docker system prune -a --volumes

ترفندهای کوتاه و پرکاربرد برای برنامه‌نویسان

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

ورود سریع به کانتینر در حال اجرا:

docker exec -it $(docker ps -q -f name=my-app) bash

مشاهده مصرف منابع کانتینرها:

docker stats

اجرای موقت یک کانتینر و حذف خودکار پس از خروج:

docker run --rm -it ubuntu bash

کپی فایل بین میزبان و کانتینر:

docker cp my-file.txt my-container:/path/in/container/

دیدن تاریخچه لایه‌های یک ایمیج:

docker history my-image

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

نتیجه‌گیری و خلاصه

ما در این آموزش داکر رایگان از صفر تا صد با مفاهیم اصلی داکر آشنا شدیم. دیدیم که داکر با استفاده از کانتینرها، مشکل «تطابق محیط» را حل می‌کند. داکر به برنامه‌نویسان اجازه می‌دهد برنامه‌های خود را در محیط‌های ایزوله و قابل حمل اجرا کنند.

در این مقاله، ما آموزش داکر رایگان را با مراحل زیر پوشش دادیم:

  • مفهوم داکر و تفاوت آن با ماشین مجازی
  • نصب داکر روی ویندوز، مک و لینوکس
  • مفاهیم پایه شامل ایمیج، کانتینر، Dockerfile و Docker Compose
  • کار با کانتینرها با دستورات عملی
  • ساخت ایمیج سفارشی و بهینه‌سازی آن
  • استفاده از Docker Compose برای برنامه‌های چندکانتینره
  • اشتراک‌گذاری ایمیج‌ها در داکر هاب
  • شبکه‌ها و حجم‌های داده در داکر
  • عیب‌یابی و ترفندهای پیشرفته

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

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

🚀 دستور العمل نهایی: پس از این آموزش داکر رایگان، توصیه می‌کنم یک پروژه واقعی را با داکر کانتینر کنید و در داکر هاب به اشتراک بگذارید. این بهترین گام برای تثبیت یادگیری است.

دعوت به اقدام نهایی

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

ما شما را دعوت می‌کنیم:

نمونه‌کارهای ما را در نمونه‌کارهای فگابین ببینید.

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

آماده‌اید که پروژه را شروع کنیم؟ همین حالا برای یک جلسه مشاوره تخصصی رایگان با ما تماس بگیرید.

کار ما را در شبکه‌های اجتماعی دنبال کنید تا از آخرین روندهای فناوری باخبر بمانید:

– لینکداین فگابین

–توییتر فگابین

– اینستاگرام فراهین

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

مقالات مرتبط
پاسخ دهید

آدرس ایمیل شما منتشر نخواهد شد.قسمتهای مورد نیاز علامت گذاری شده اند *