فارسی (Farsi)
€EUR

نصب Docker روی VPS لینوکس

3 min
سرور مجازی (VPS/VDS)

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

📋 پیش‌نیازها

  • یک VPS لینوکس با دسترسی روت (root) یا sudo
  • Ubuntu 20.04+ یا Debian 11+ (یا CentOS 7+/RHEL 7+)
  • حداقل 1 GB RAM (2 GB پیشنهاد می‌شود)
  • یک اتصال اینترنت پایدار

💡 پیشنهاد زیرساخت

Docker برای کامپایل و عملیات I/O سنگین به دیسک‌های سریع نیاز دارد. برای عملکرد بهینه هنگام استفاده از Docker، VPS‌های NVMe ما را پیشنهاد می‌کنیم. دیسک‌های NVMe سرعتی تا 10 برابر بیشتر از SSD‌های معمولی ارائه می‌دهند که ساخت ایمیج‌های Docker و راه‌اندازی کانتینرها را به‌طور چشمگیری سریع‌تر می‌کند.

⚠️ مهم پیش از نصب

  • سیستم خود را بررسی کنید: Docker به یک سیستم 64 بیتی نیاز دارد
  • از داده‌های خود بکاپ بگیرید: نصب ممکن است برخی تنظیمات سیستم را تغییر دهد
  • زمان نصب: نصب معمولاً 5 تا 10 دقیقه طول می‌کشد

🔧 نصب روی Ubuntu/Debian

مرحله 1: به‌روزرسانی سیستم

Bash
# Mettre à jour la liste des paquets sudo apt update # Mettre à jour les paquets installés sudo apt upgrade -y

مرحله 2: نصب وابستگی‌ها

Bash
# Installer les paquets nécessaires sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release

مرحله 3: افزودن کلید GPG رسمی Docker

Bash
# Créer le répertoire pour les clés sudo install -m 0755 -d /etc/apt/keyrings # Télécharger et ajouter la clé GPG curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # Donner les permissions correctes sudo chmod a+r /etc/apt/keyrings/docker.gpg

مرحله 4: پیکربندی مخزن Docker

Bash
# Ajouter le repository Docker echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

مرحله 5: نصب Docker Engine

Bash
# Mettre à jour la liste des paquets sudo apt update # Installer Docker Engine, containerd et Docker Compose sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

مرحله 6: بررسی نصب

Bash
# Vérifier que Docker est installé correctement sudo docker --version # Vérifier que Docker Compose est installé sudo docker compose version

🔧 نصب روی CentOS/RHEL

مرحله 1: به‌روزرسانی سیستم

Bash
# Mettre à jour les paquets sudo yum update -y

مرحله 2: نصب وابستگی‌ها

Bash
# Installer les paquets nécessaires sudo yum install -y yum-utils

مرحله 3: افزودن مخزن Docker

Bash
# Ajouter le repository Docker sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

مرحله 4: نصب Docker Engine

Bash
# Installer Docker Engine, containerd et Docker Compose sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

مرحله 5: راه‌اندازی Docker

Bash
# Démarrer le service Docker sudo systemctl start docker # Activer Docker au démarrage sudo systemctl enable docker

مرحله 6: بررسی نصب

Bash
# Vérifier que Docker est installé correctement sudo docker --version # Vérifier que Docker Compose est installé sudo docker compose version

👤 مرحله 7: پیکربندی مجوزها (مهم)

به‌طور پیش‌فرض، Docker به دسترسی روت نیاز دارد. برای اجرای Docker بدون sudo، کاربر خود را به گروه docker اضافه کنید:

Bash
# Ajouter votre utilisateur au groupe docker sudo usermod -aG docker $USER # Appliquer les changements (déconnexion/reconnexion nécessaire) newgrp docker

مهم: پس از افزودن کاربر خود به گروه docker، باید خارج شوید و دوباره وارد شوید تا تغییرات اعمال شود.

بررسی مجوزها

Bash
# Tester Docker sans sudo docker run hello-world

اگر این دستور بدون خطا اجرا شد، Docker به‌درستی پیکربندی شده است!

🧪 مرحله 8: آزمایش Docker

اجرای یک کانتینر آزمایشی

Bash
# Lancer un conteneur Hello World docker run hello-world

این دستور:

  1. ایمیج hello-world را از Docker Hub دانلود می‌کند
  2. از این ایمیج یک کانتینر می‌سازد
  3. کانتینر را اجرا می‌کند
  4. یک پیام تأیید نمایش می‌دهد

بررسی کانتینرها

Bash
# Lister les conteneurs en cours d'exécution docker ps # Lister tous les conteneurs (y compris arrêtés) docker ps -a # Lister les images Docker docker images

🐙 مرحله 9: نصب Docker Compose (در صورت نبودن)

اگر Docker Compose همراه Docker Engine نصب نشده است، آن را جداگانه نصب کنید:

روی Ubuntu/Debian

Bash
# Télécharger Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # Rendre exécutable sudo chmod +x /usr/local/bin/docker-compose # Vérifier l'installation docker-compose --version

روی CentOS/RHEL

Bash
# Télécharger Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # Rendre exécutable sudo chmod +x /usr/local/bin/docker-compose # Vérifier l'installation docker-compose --version

📦 دستورهای ضروری Docker

مدیریت ایمیج‌ها

Bash
# Télécharger une image docker pull nom-image:tag # Lister les images docker images # Supprimer une image docker rmi nom-image # Nettoyer les images inutilisées docker image prune -a

مدیریت کانتینرها

Bash
# Créer et démarrer un conteneur docker run nom-image # Créer un conteneur en arrière-plan (détaché) docker run -d nom-image # Lister les conteneurs en cours d'exécution docker ps # Arrêter un conteneur docker stop container-id # Démarrer un conteneur arrêté docker start container-id # Redémarrer un conteneur docker restart container-id # Supprimer un conteneur docker rm container-id # Voir les logs d'un conteneur docker logs container-id # Exécuter une commande dans un conteneur en cours d'exécution docker exec -it container-id /bin/bash

Docker Compose

Bash
# Démarrer les services définis dans docker-compose.yml docker compose up # Démarrer en arrière-plan docker compose up -d # Arrêter les services docker compose down # Voir les logs docker compose logs # Reconstruire les images docker compose build

🔒 ایمن‌سازی Docker

پیکربندی دیمن Docker (اختیاری)

فایل /etc/docker/daemon.json را بسازید یا ویرایش کنید:

Bash
sudo nano /etc/docker/daemon.json

پیکربندی زیر را اضافه کنید:

JSON
1{ 2 "log-driver": "json-file", 3 "log-opts": { 4 "max-size": "10m", 5 "max-file": "3" 6 } 7}

Docker را دوباره راه‌اندازی کنید:

Bash
sudo systemctl restart docker

محدود کردن دسترسی به Docker

به‌طور پیش‌فرض، کاربران گروه docker سطح دسترسی معادل root دارند. برای امنیت بیشتر می‌توانید:

  1. فقط به کاربران مورد اعتماد دسترسی بدهید
  2. از Docker rootless استفاده کنید (نصب پیشرفته)
  3. سیاست‌های امنیتی را از طریق AppArmor یا SELinux پیکربندی کنید

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

روی Ubuntu/Debian

Bash
# Mettre à jour les paquets sudo apt update # Mettre à jour Docker sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

روی CentOS/RHEL

Bash
# Mettre à jour Docker sudo yum update docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

🗑️ حذف Docker

اگر می‌خواهید Docker را حذف کنید:

روی Ubuntu/Debian

Bash
# Arrêter Docker sudo systemctl stop docker # Désinstaller les paquets sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # Supprimer les images, conteneurs et volumes sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

روی CentOS/RHEL

Bash
# Arrêter Docker sudo systemctl stop docker # Désinstaller les paquets sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # Supprimer les images, conteneurs et volumes sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

❓ مشکلات رایج

خطای "Cannot connect to the Docker daemon"

راه‌حل:

Bash
# Vérifier que le service Docker est démarré sudo systemctl status docker # Démarrer Docker si nécessaire sudo systemctl start docker # Vérifier que vous êtes dans le groupe docker groups

خطای "Permission denied"

راه‌حل:

Bash
# Ajouter votre utilisateur au groupe docker sudo usermod -aG docker $USER # Se déconnecter et se reconnecter

Docker کند است

راه‌حل‌های ممکن:

  • فضای دیسک را بررسی کنید: df -h
  • ایمیج‌های استفاده‌نشده را پاک کنید: docker system prune -a
  • RAM در دسترس را بررسی کنید: free -h

📝 نمونه: استقرار یک برنامه ساده

ساخت فایل docker-compose.yml

Bash
# Créer un répertoire pour votre projet mkdir mon-projet cd mon-projet # Créer un fichier docker-compose.yml nano docker-compose.yml

نمونه محتوا:

YAML
1version: '3.8' 2 3services: 4 web: 5 image: nginx:latest 6 ports: 7 - "80:80" 8 volumes: 9 - ./html:/usr/share/nginx/html 10 restart: unless-stopped

راه‌اندازی برنامه

Bash
# Démarrer les services docker compose up -d # Vérifier que le conteneur fonctionne docker ps

📞 به کمک نیاز دارید؟

اگر هنگام نصب Docker با مشکلی روبه‌رو شدید، با پشتیبانی Infrawire تماس بگیرید. تیم ما آماده کمک به شماست.


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

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

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

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

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