نصب داکر در ایران : آموزش کامل به همراه مثال (2025)

خلاصه این مقاله:آموزش نصب داکر در ایران روی اوبونتو با DNS تحریم‌شکن و مخازن ابرآروان و docker.ir برای مبتدیان.

آموزش نصب داکر در ایران روی اوبونتو با DNS تحریم‌شکن و مخازن داخلی

مقدمه: نصب داکر در ایران با دور زدن تحریم‌ها

نصب داکر در ایران به دلیل تحریم‌های اینترنتی و محدودیت دسترسی به مخازن Docker Hub چالش‌برانگیزه. اما با استفاده از DNSهای تحریم‌شکن مثل شکن، الکترو، و 404 یا مخازن داخلی مثل ابرآروان و docker.ir، می‌تونید به راحتی داکر رو روی سرور اوبونتو 22.04 نصب کنید و کانتینرهای خودتون رو راه‌اندازی کنید. این آموزش برای مبتدیانی طراحی شده که با سرورهای مجازی ایرانی کار می‌کنن و می‌خوان برنامه‌هاشون رو در محیط‌های ایزوله اجرا کنن.

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

 

همچنین بخوانید: آموزش ساخت DNS گیمینگ

 

نصب Docker در ایران
نصب Docker در ایران

پیش‌نیازها برای نصب داکر در ایران

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

  • سرور اوبونتو : حداقل 2 گیگ رم، 2 هسته CPU، 20 گیگ فضای ذخیره‌سازی. مناسب برای سرورهای مجازی ایرانی (مثل شهریار تبریز). راهنمای لینوکس رو ببینید.
  • دسترسی root یا sudo: برای اجرای دستورات.
  • DNS تحریم‌شکن: شکن (178.22.122.100 و 185.51.200.2)، الکترو (78.157.42.100 و 78.157.42.101)، یا 404 (10.202.10.10 و 10.202.10.11).
  • فایروال: پورت‌های 80 و 443 برای تست باز باشن. آموزش UFW.

زمان تقریبی: 30 تا 60 دقیقه.

گام 1: تنظیم DNS تحریم‌شکن برای دسترسی به Docker Hub

برای دور زدن تحریم‌های Docker Hub، باید DNS سرور رو به یه سرویس تحریم‌شکن تغییر بدید.

مراحل تنظیم DNS

  1. اتصال به سرور:
    ssh root@your-server-ip
    

    توضیح: IP سرور مجازی ایرانی خودتون رو وارد کنید.

  2. تهیه نسخه پشتیبان از resolv.conf:
    sudo cp /etc/resolv.conf /etc/resolv.conf.bak
    

    توضیح: این کار از تغییرات ناخواسته جلوگیری می‌کنه.

     

  3. تنظیم DNS شکن:
    sudo bash -c 'echo -e "nameserver 178.22.122.100\nnameserver 185.51.200.2" > /etc/resolv.conf'
    

    توضیح: این آدرس‌های شکن تحریم‌ها رو دور می‌زنن. برای الکترو (78.157.42.100 و 78.157.42.101) یا 404 (10.202.10.10 و 10.202.10.11) هم می‌تونید مشابه عمل کنید.

     

  4. جلوگیری از بازنویسی DNS:
    sudo chattr +i /etc/resolv.conf
    

    توضیح: این دستور مانع تغییر خودکار DNS توسط سیستم می‌شه.

  5. تست DNS:
    ping hub.docker.com
    

    توضیح: اگر پاسخ گرفتید، DNS درست کار می‌کنه.

گام 2: نصب پیش‌نیازها و مخزن داکر

سیستم رو برای نصب داکر آماده می‌کنیم.

مراحل نصب

  1. بروزرسانی سیستم:
    sudo apt update && sudo apt upgrade -y
    sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
    

    توضیح: این پکیج‌ها برای امنیت و دسترسی به مخزن داکر ضروری هستن.

     

  2. افزودن کلید GPG:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    

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

     

  3. افزودن مخزن داکر:
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  4. نصب داکر:
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    

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

     

گام 3: استفاده از مخازن داخلی (ابرآروان و docker.ir)

برای دور زدن تحریم‌ها، از مخازن داخلی مثل ابرآروان یا docker.ir استفاده کنید.

مراحل استفاده

  1. اضافه کردن کاربر به گروه داکر:
    sudo usermod -aG docker $USER
    newgrp docker
    

    توضیح: این کار اجازه می‌ده بدون sudo از داکر استفاده کنید.

     

  2. تنظیم مخزن ابرآروان:
    sudo bash -c 'cat > /etc/docker/daemon.json <

    توضیح: این مخزن نیازی به DNS تحریم‌شکن نداره.

     

  3. کشیدن ایمیج از ابرآروان:
    docker pull docker.arvancloud.ir/nginx
    
  4. اجرای کانتینر Nginx:
    docker run -d -p 80:80 --name my-nginx docker.arvancloud.ir/nginx
    

    توضیح: این یه وب‌سرور Nginx راه‌اندازی می‌کنه. از مرورگر IP سرورتون رو باز کنید.

     

  5. استفاده از مخزن docker.ir (اختیاری):
    sudo bash -c 'cat > /etc/docker/daemon.json <

    توضیح: این مخزن هم برای دور زدن تحریم‌ها مناسبه.

     

گام 4: استفاده از Docker Hub با DNS تحریم‌شکن

اگر ترجیح می‌دید از Docker Hub استفاده کنید:

  1. اجرای کانتینر Hello World:
    docker run hello-world
    

    توضیح: با DNS شکن، این دستور پیام “Hello from Docker” رو نشون می‌ده.

  2. اجرای کانتینر Nginx از Docker Hub:
    docker run -d -p 8080:80 --name my-nginx-hub nginx
    

    توضیح: پورت 8080 برای جلوگیری از تداخل با کانتینر ابرآروان استفاده شده.

گام 5: مدیریت کانتینرها و Docker Compose

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

  1. لیست کانتینرها:
    docker ps -a
    

    توضیح: همه کانتینرهای فعال و غیرفعال رو نشون می‌ده.

  2. ساخت Dockerfile سفارشی:
    FROM docker.arvancloud.ir/ubuntu:22.04
    RUN apt update && apt install -y nginx
    CMD ["nginx", "-g", "daemon off;"]
    

    توضیح: فایل رو ذخیره کنید (مثلاً Dockerfile) و بیلد کنید: docker build -t my-nginx .. بر خلاف رقبا (مثل وب‌سافت)، ما ساخت ایمیج سفارشی رو آموزش دادیم.

     

  3. اجرای تصویر سفارشی:
    docker run -d -p 8081:80 --name my-custom-nginx my-nginx
    
  4. استفاده از Docker Compose:
    version: '3'
    services:
      web:
        image: docker.arvancloud.ir/nginx
        ports:
          - "8082:80"
    

    توضیح: فایل رو به نام docker-compose.yml ذخیره کنید و اجرا کنید: docker-compose up -d. این برای اجرای چند کانتینر مناسبه و در آموزش‌های رقبا (مثل فزونی) غایبه.

گام 6: تنظیم فایروال برای امنیت

برای محافظت از سرور:

  1. نصب و تنظیم UFW:
    sudo apt install ufw -y
    sudo ufw allow 80/tcp
    sudo ufw allow 8080/tcp
    sudo ufw allow 8081/tcp
    sudo ufw allow 8082/tcp
    sudo ufw enable
    

    توضیح: این با مقاله UFW شما هم‌راستاست. آموزش UFW.

گام 7: تست و عیب‌یابی نصب داکر در ایران

برای اطمینان از عملکرد درست:

  1. چک نسخه داکر:
    docker --version
    

    توضیح: باید نسخه 20 یا بالاتر رو ببینید.

  2. چک لاگ‌ها:
    docker logs my-nginx
    

    توضیح: اگر خطایی دیدید، از docker ps برای وضعیت چک کنید.

  3. تست از مرورگر: IP سرورتون رو با پورت‌های 80، 8080، 8081، یا 8082 باز کنید تا صفحه Nginx رو ببینید.
  4. عیب‌یابی تحریم‌ها: اگر خطای 403 یا timeout گرفتید، DNS رو عوض کنید یا از مخزن ابرآروان استفاده کنید.

 

اسکریپت نصب خودکار داکر:

 

#!/bin/bash

# Script to install Docker on an Iranian VPS with optimized mirrors and error handling

# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color

# Logging function
log() {
    echo -e "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}

# Error handling function
handle_error() {
    log "${RED}Error: $1${NC}"
    exit 1
}

# Check if script is run as root
if [[ $EUID -ne 0 ]]; then
    handle_error "This script must be run as root (use sudo)"
fi

# Set DNS servers
log "Configuring DNS servers..."
echo -e "nameserver 1.1.1.1\nnameserver 1.0.0.1" | tee /etc/resolv.conf > /dev/null || handle_error "Failed to set DNS servers"

# Configure Iranian mirror
log "Configuring Iranian apt mirror..."
bash <(curl -Ls --ipv4 https://raw.githubusercontent.com/Arash-Ariaye/irvm/refs/heads/main/smirror.sh) || handle_error "Failed to configure Iranian mirror"

# Update package lists and install prerequisites
log "Updating package lists and installing prerequisites..."
apt update || handle_error "Failed to update package lists"
apt install -y apt-transport-https ca-certificates curl software-properties-common || handle_error "Failed to install prerequisites"

# Set alternative DNS servers for Docker download
log "Setting alternative DNS servers for Docker download..."
echo -e "nameserver 181.41.194.177\nnameserver 181.41.194.186" | tee /etc/resolv.conf > /dev/null || handle_error "Failed to set alternative DNS servers"

# Add Docker's official GPG key
log "Adding Docker GPG key..."
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg || handle_error "Failed to add Docker GPG key"

# Set up Docker repository
log "Setting up Docker repository..."
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null || handle_error "Failed to set up Docker repository"

# Install Docker
log "Installing Docker and related components..."
apt update || handle_error "Failed to update package lists for Docker"
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || handle_error "Failed to install Docker components"

# Verify Docker installation
log "Verifying Docker installation..."
if command -v docker &> /dev/null; then
    docker_version=$(docker --version)
    log "${GREEN}Docker installed successfully: ${docker_version}${NC}"
else
    handle_error "Docker installation verification failed"
fi

# Configure Docker daemon for ArvanCloud mirror (Iranian registry)
log "Configuring Docker daemon for ArvanCloud mirror..."
cat > /etc/docker/daemon.json <<EOF
{
  "insecure-registries" : ["https://docker.arvancloud.ir"],
  "registry-mirrors": ["https://docker.arvancloud.ir"]
}
EOF || handle_error "Failed to configure Docker daemon"

# Logout and restart Docker service
log "Logging out from Docker and restarting service..."
docker logout || log "${GREEN}Docker logout completed or no login found${NC}"
systemctl restart docker || handle_error "Failed to restart Docker service"

# Verify Docker service restart
sleep 2  # Wait a bit for service to fully restart
if systemctl is-active --quiet docker; then
    log "${GREEN}Docker service restarted successfully${NC}"
else
    handle_error "Docker service failed to restart"
fi

log "${GREEN}✅ Installation and configuration completed successfully!${NC}"
log "💡 Tip: Test Docker with: docker run hello-world"

نحوه استفاده:

  1. اسکریپت را در فایل install_docker_ir.sh ذخیره کنید.
  2. مجوز اجرا بدهید: chmod +x install_docker_ir.sh
  3. اجرا کنید: sudo ./install_docker_ir.sh

خروجی نمونه:

[2024-01-15 14:30:00] Configuring Docker daemon for ArvanCloud mirror...
[2024-01-15 14:30:01] Logging out from Docker and restarting service...
[2024-01-15 14:30:01] Docker logout completed or no login found
[2024-01-15 14:30:03] Docker service restarted successfully
[2024-01-15 14:30:03] ✅ Installation and configuration completed successfully!
[2024-01-15 14:30:03] 💡 Tip: Test Docker with: docker run hello-world

 

جمع‌بندی و فراخوان به اقدام

این آموزش به شما نشون داد چطور داکر رو در ایران روی اوبونتو 22.04 با DNSهای تحریم‌شکن (شکن، الکترو، 404) و مخازن داخلی (ابرآروان، docker.ir) نصب کنید. حالا می‌تونید کانتینرهای خودتون رو برای توسعه یا مدیریت سرورهای مجازی راه‌اندازی کنید.