فارسی (Farsi)
€EUR
کانتینرها

Docker

سازگار با نصب‌کننده Infrawire

Docker Engine و Compose نصب‌شده از مخزن رسمی، آماده استفاده

پیکربندی حداقلی
  • 1 GB RAM
توسعه‌دهنده
Docker, Inc.
نسخه
آخرین نسخه پایدار
مجوز
Apache 2.0
سیستم‌ها
Debian 12, Debian 13, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04

معرفی Docker

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

هنگام تحویل، سرور مجازی (VPS) لینوکسی شما (Debian 12، Debian 13، Ubuntu 22.04 یا 24.04 و همچنین Ubuntu 20.04 با محدودیت‌هایی که در ادامه آمده است) شامل Docker Engine است که از مخزن رسمی apt داکر نصب شده است. بسته‌های docker-ce، docker-ce-cli، containerd.io، docker-buildx-plugin و docker-compose-plugin آماده‌اند و سرویس‌های docker و containerd هنگام بوت فعال می‌شوند.

کلید امضای مخزن پیش از نصب با اثر انگشت (fingerprint) بررسی می‌شود. در پایان اجرای دستورالعمل نصب، یک کانتینر hello-world اجرا می‌شود تا پاسخ‌گو بودن دیمن تأیید شود. پس از آن سرور در اختیار شماست: به‌طور پیش‌فرض هیچ کاربری به گروه docker اضافه نمی‌شود و هیچ برنامه‌ای به جای شما مستقر نمی‌شود.

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

  • مخزن رسمی apt داکر

    بسته‌ها از download.docker.com می‌آیند و اثر انگشت کلید امضای آن‌ها بررسی می‌شود. به‌روزرسانی‌ها مثل بقیه سیستم از طریق apt انجام می‌شوند.

  • Compose و Buildx همراه سرور

    افزونه Compose با docker compose (بدون خط تیره) استفاده می‌شود و Buildx برای ساخت ایمیج‌های شما به کار می‌رود. از همان اولین اتصال می‌توانید یک استک چندسرویسه را مستقر کنید.

  • چرخش لاگ‌ها از پیش تنظیم‌شده

    اگر /etc/docker/daemon.json وجود نداشته باشد، دستورالعمل نصب آن را با درایور json-file، حجم 10 مگابایت برای هر فایل و نگهداری 3 فایل می‌نویسد. لاگ‌های کانتینر بی‌سروصدا دیسک را پر نمی‌کنند.

  • حذف بسته‌های متداخل

    بسته‌های غیررسمی مانند docker.io، podman-docker، containerd یا runc پیش از نصب حذف می‌شوند. این کار از ترکیب نسخه‌های ناهماهنگی که باعث از کار افتادن دیمن می‌شود جلوگیری می‌کند.

  • کنترل دسترسی معادل روت

    هیچ حسابی به گروه docker اضافه نمی‌شود، گروهی که معادل دسترسی روت (root) است. شما تصمیم می‌گیرید این امتیاز به چه کسی داده شود.

  • لاگ نصب خوانا

    هر مرحله در /var/log/docker-install.log ثبت می‌شود و فایل /var/lib/docker-install.done تأیید می‌کند که دستورالعمل نصب تا انتها اجرا شده است.

شروع کار با Docker

از سفارش تا راه‌اندازی نهایی، در چند دقیقه.

  1. 1

    سفارش VPS با گزینه Docker

    یک VPS لینوکسی در پاریس یا فرانکفورت انتخاب کنید، Debian 12، Debian 13، Ubuntu 22.04 یا 24.04 را برگزینید و سپس در تب «Applications» فرم سفارش، Docker را تیک بزنید.

  2. 2

    اتصال و بررسی نصب

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

    Bash
    ssh USER@SERVER_IP cat /var/lib/docker-install.done tail -n 20 /var/log/docker-install.log
  3. 3

    اجرای اولین کانتینر

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

    Bash
    docker --version && docker compose version docker run -d --name web -p 127.0.0.1:8080:80 nginx curl -I http://127.0.0.1:8080
  4. 4

    امن‌سازی پیش از محیط عملیاتی

    یک reverse proxy (Caddy، Traefik یا Nginx) جلوی سرویس‌های خود قرار دهید تا YOUR_DOMAIN را روی HTTPS مدیریت کند و فقط پورت‌های 80 و 443 را روی اینترنت منتشر کنید. پورت‌های دیگر را روی 127.0.0.1 نگه دارید، چون پورت‌هایی که Docker منتشر می‌کند از ufw عبور می‌کنند. در پایان، ولوم‌ها و فایل‌های compose خود را بکاپ بگیرید.

    Bash
    docker volume ls docker compose up -d

کاربردهای Docker

  • میزبانی چند سرویس ایزوله

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

  • استقرار یک برنامه خودمیزبان

    بسیاری از پروژه‌های متن‌باز (n8n، Nextcloud، Gitea، Uptime Kuma و...) یک ایمیج Docker و یک نمونه Compose منتشر می‌کنند. VPS بدون هیچ آماده‌سازی قبلی برای پذیرش آن‌ها آماده است.

  • ساخت و آزمایش ایمیج‌ها

    با Buildx ایمیج‌های خود را روی یک ماشین راه دور اختصاصی می‌سازید، بدون اینکه سیستم کاری شما زیر بار برود. این برای یک زنجیره CI سبک یا تست‌های یکپارچگی مفید است.

  • بازتولید محیط عملیاتی در پیش‌تولید

    یک VPS دوم با همان نسخه Docker و همان فایل‌های Compose، محیط آزمایشی نزدیک به محیط عملیاتی را با هزینه مدیریتی کمتر در اختیار شما می‌گذارد.

پرسش‌های متداول درباره Docker

دستورالعمل نصب، docker-ce، docker-ce-cli، containerd.io، docker-buildx-plugin و docker-compose-plugin را از مخزن رسمی apt داکر نصب می‌کند. سرویس docker و سرویس containerd هنگام بوت فعال می‌شوند. با Compose v2 دستور docker compose است، نه docker-compose.

درباره Docker بیشتر بدانید

فایروال و پورت‌های منتشرشده

این رایج‌ترین دام است. وقتی پورتی را با -p 8080:80 منتشر می‌کنید، Docker قوانین iptables مخصوص خود را می‌نویسد و ترافیک پیش از قوانین ufw یا firewalld عبور می‌کند. بنابراین ufw deny 8080 هیچ چیزی را مسدود نمی‌کند.

دو روش قابل‌اعتماد وجود دارد: پورت را به اینترفیس محلی متصل کنید (-p 127.0.0.1:8080:80) و سرویس را از طریق یک reverse proxy در دسترس قرار دهید، یا در زنجیره DOCKER-USER فیلتر کنید که Docker پیش از قوانین خودش آن را بررسی می‌کند. روش اول ساده‌تر است و در بیشتر موارد کافی است.

گروه docker و sudo

عضویت در گروه docker معادل داشتن دسترسی روت (root) روی ماشین است: یک کانتینر می‌تواند فایل‌سیستم میزبان را مانت کند. دستورالعمل نصب هیچ‌کس را به این گروه اضافه نمی‌کند. اگر می‌خواهید با یک حساب بدون دسترسی ویژه کار کنید، خودتان آن را اضافه کنید و سپس دوباره وارد شوید.

Bash
sudo usermod -aG docker USER

لاگ‌های کانتینرها

فایل /etc/docker/daemon.json که هنگام تحویل نوشته می‌شود، هر کانتینر را به 3 فایل 10 مگابایتی محدود می‌کند. این فایل فقط در صورتی ایجاد می‌شود که از قبل وجود نداشته باشد. برای تغییر این مقادیر، آن را ویرایش کنید و سپس دیمن را ری‌استارت کنید. تنظیمات جدید فقط روی کانتینرهایی اعمال می‌شود که پس از ری‌استارت ساخته شده‌اند.

Bash
sudo systemctl restart docker

به‌روزرسانی‌ها

مخزن Docker در /etc/apt/sources.list.d/docker.sources تعریف شده است. بنابراین نسخه‌های جدید همراه با به‌روزرسانی‌های معمول apt می‌رسند. آن‌ها را در زمانی انجام دهید که ری‌استارت دیمن قابل‌قبول باشد، چون اگر گزینه live-restore فعال نباشد، ممکن است کانتینرهای شما متوقف شوند.

Bash
sudo apt update && sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io

Ubuntu 20.04

Docker دیگر به‌طور رسمی از Ubuntu 20.04 پشتیبانی نمی‌کند. با این حال، اگر مخزن Docker هنوز این نسخه را منتشر کند، دستورالعمل نصب باز هم تلاش می‌کند نصب را انجام دهد و یک هشدار در لاگ ثبت می‌کند. برای سرور عملیاتی، Ubuntu 22.04، Ubuntu 24.04، Debian 12 یا Debian 13 را ترجیح دهید که همگی پشتیبانی می‌شوند.

بکاپ‌ها

ایمیج‌ها دوباره دانلود می‌شوند، اما داده‌های شما نه. ولوم‌های نام‌دار، دایرکتوری‌های مانت‌شده و فایل‌های compose.yaml خود را همراه با متغیرهای محیطی‌شان بکاپ بگیرید. برای پایگاه داده، به‌جای کپی ولوم در حالت روشن، خروجی منطقی (pg_dump، mysqldump) را ترجیح دهید.

با آخرین پیشنهادها، تخفیف‌ها و تبلیغات ویژه به‌روز بمانید.

مشاهده تخفیف‌ها

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

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