این راهنما نحوه نصب 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
این دستور:
- ایمیج
hello-worldرا از Docker Hub دانلود میکند - از این ایمیج یک کانتینر میسازد
- کانتینر را اجرا میکند
- یک پیام تأیید نمایش میدهد
بررسی کانتینرها
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 را بسازید یا ویرایش کنید:
Bashsudo nano /etc/docker/daemon.json
پیکربندی زیر را اضافه کنید:
JSON1{ 2 "log-driver": "json-file", 3 "log-opts": { 4 "max-size": "10m", 5 "max-file": "3" 6 } 7}
Docker را دوباره راهاندازی کنید:
Bashsudo systemctl restart docker
محدود کردن دسترسی به Docker
بهطور پیشفرض، کاربران گروه docker سطح دسترسی معادل root دارند. برای امنیت بیشتر میتوانید:
- فقط به کاربران مورد اعتماد دسترسی بدهید
- از Docker rootless استفاده کنید (نصب پیشرفته)
- سیاستهای امنیتی را از طریق 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
نمونه محتوا:
YAML1version: '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 ابزاری قدرتمند است که استقرار برنامهها را بسیار ساده میکند. پیش از استقرار برنامهها در محیط عملیاتی، زمانی برای درک خوب مفاهیم پایه اختصاص دهید.