فهرست مطالب
- ۱مقدمه: چالشهای نصب داکر در ایران و راهکارهای عبور از آن
- ۲پیشنیازها برای نصب داکر در ایران
- ۳گام ۱: تنظیم DNS تحریمشکن برای دسترسی به مخازن Docker Hub
- ۴گام ۲: آمادهسازی سرستمعامل و نصب هسته داکر
- ۵گام ۳: بهینهسازی نصب داکر در ایران با مخازن داخلی (ابرآروان)
- ۶گام ۴: مدیریت کانتینرها با Docker Compose
- ۷گام ۵: تنظیم فایروال سرور مجازی برای امنیت
- ۸اسکریپت نصب خودکار داکر:
- ۹جمعبندی نهایی و فراخوان به اقدام
مقدمه: چالشهای نصب داکر در ایران و راهکارهای عبور از آن
فرایند نصب داکر در ایران همواره به دلیل تحریمهای سختگیرانه اینترنتی و مسدود بودن دسترسی کاربران ایرانی به مخازن رسمی Docker Hub، یکی از چالشهای بزرگ برنامهنویسان و مدیران سرور بوده است. دریافت خطای معروف 403 (Forbidden) در زمان Pull کردن ایمیجها، اتفاقی آشناست. اما جای نگرانی نیست!
با استفاده از DNSهای تحریمشکن معتبر مانند شکن، الکترو و بگذر (403) و همچنین بهرهگیری از مخازن (Mirror) داخلی قدرتمند مانند ابرآروان و docker.ir، میتوانید به راحتی محدودیتها را دور زده و نصب داکر در ایران را روی سرور اوبونتو 22.04 یا 24.04 با موفقیت انجام دهید.
داکر (Docker) یک پلتفرم متنباز است که به شما امکان میدهد برنامهها و وابستگیهای آنها را در کانتینرهای سبک، سریع و ایزوله بستهبندی کنید. این راهنمای جامع از بلاگ ایران وی ام، شما را قدمبهقدم برای راهاندازی این محیط هدایت میکند.
همچنین بخوانید: آموزش ساخت DNS گیمینگ اختصاصی (2026)

پیشنیازها برای نصب داکر در ایران
قبل از شروع تایپ دستورات در محیط ترمینال، مطمئن شوید موارد زیر را در اختیار دارید:
- سرور مجازی اوبونتو: با حداقل 2 گیگابایت رم، 2 هسته CPU و 20 گیگابایت فضای ذخیرهسازی SSD. پیشنهاد ما استفاده از سرورهای پایدار ایرانی (مانند سرور مجازی رسپینا) است.
- دسترسی کاربر ریشه (Root): برای اجرای دستورات سیستمی با پیشوند Sudo.
- آیپیهای DNS تحریمشکن: شکن (
178.22.122.100)، الکترو (78.157.42.100) یا رادار. - زمان تقریبی انجام کار: حدود ۱۵ الی ۳۰ دقیقه.
گام ۱: تنظیم DNS تحریمشکن برای دسترسی به مخازن Docker Hub
اولین و مهمترین قدم برای نصب داکر در ایران، دور زدن سیستم مسدودسازی شرکت داکر است. برای این کار باید مسیر درخواستهای سرور (DNS Resolver) خود را تغییر دهید.
- اتصال به سرور لینوکس:
ssh root@your-server-ip(آیپی سرور مجازی ایرانی خود را جایگزین کنید).
- تهیه نسخه پشتیبان از تنظیمات شبکه:
sudo cp /etc/resolv.conf /etc/resolv.conf.bak(این کار برای جلوگیری از اختلال در شبکه انجام میشود).
- تزریق آیپیهای تحریمشکن (مثال: شکن):
sudo bash -c 'echo -e "nameserver 178.22.122.100\nnameserver 185.51.200.2" > /etc/resolv.conf' - جلوگیری از بازنویسی خودکار DNS توسط سیستم:
sudo chattr +i /etc/resolv.conf - تست صحت عملکرد شبکه:
ping hub.docker.com(اگر پکتهای پینگ با موفقیت برگشت داده شدند، یعنی تحریمها را با موفقیت دور زدهاید).
گام ۲: آمادهسازی سرستمعامل و نصب هسته داکر
اکنون که ارتباط ما با دنیای خارج برقرار است، باید پکیجهای رسمی را روی اوبونتو نصب کنیم.
- بهروزرسانی پکیجهای سیستم:
sudo apt update && sudo apt upgrade -y sudo apt install apt-transport-https ca-certificates curl software-properties-common -y - دریافت و افزودن کلید امنیتی (GPG Key) داکر:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - معرفی مخزن رسمی داکر به اوبونتو:
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 - نصب نهایی داکر و ابزارهای جانبی:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y(نکته: بر خلاف بسیاری از آموزشهای قدیمی، ما ابزار حیاتی
docker-composeرا نیز در این مرحله نصب کردیم تا نیازی به نصب مجدد نداشته باشید).
گام ۳: بهینهسازی نصب داکر در ایران با مخازن داخلی (ابرآروان)
برای اینکه سرعت دریافت ایمیجها بالا برود و وابستگی شما به DNSهای تحریمشکن کمتر شود، بهتر است موتور داکر خود را به مخازن داخلی (Mirrors) متصل کنید.
- اضافه کردن کاربر فعلی به گروه داکر (حذف نیاز به Sudo):
sudo usermod -aG docker $USER newgrp docker - تنظیم مخزن ابرآروان در فایل پیکربندی:
sudo bash -c 'cat > /etc/docker/daemon.json <پس از این کار، سرویس داکر را یکبار ریاستارت کنید:
sudo systemctl restart docker. - دریافت یک ایمیج تستی (مثلاً Nginx) با سرعت بالا:
docker pull docker.arvancloud.ir/nginx - راهاندازی کانتینر:
docker run -d -p 80:80 --name my-nginx docker.arvancloud.ir/nginx
گام ۴: مدیریت کانتینرها با Docker Compose
مدیریت اپلیکیشنهای چندگانه بدون Docker Compose بسیار دشوار است. برای ساخت یک ساختار ایزوله میتوانید یک فایل کانفیگ بسازید:
- ساخت فایل YML:
version: '3' services: web: image: docker.arvancloud.ir/nginx ports: - "8082:80" - این کد را در فایلی به نام
docker-compose.ymlذخیره کرده و با دستورdocker-compose up -dآن را در بکگراند سرور مجازی خود اجرا کنید.
گام ۵: تنظیم فایروال سرور مجازی برای امنیت
برای اطمینان از اینکه ترافیک کانتینرهای شما امن است، پورتهای داکر را در فایروال UFW باز کنید:
sudo apt install ufw -y
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp
sudo ufw enable(برای توضیحات بیشتر در خصوص امنیت سرور، میتوانید به مقاله اقدامات جلوگیری از دیداس و آموزش UFW مراجعه کنید).
اسکریپت نصب خودکار داکر:
#!/bin/bash
# ================================================
# Optimized Docker Installation Script for Iranian VPS
# With better DNS, mirrors, and error handling
# ================================================
set -euo pipefail
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
log() {
echo -e "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
handle_error() {
log "${RED}Error: $1${NC}"
exit 1
}
# Check if running as root
if [[ $EUID -ne 0 ]]; then
handle_error "This script must be run as root (use sudo)"
fi
log "${YELLOW}Starting Docker installation on Iranian VPS...${NC}"
# ================================================
# 1. Configure DNS (Cloudflare + Shecan)
# ================================================
log "Configuring DNS servers..."
cat > /etc/resolv.conf </dev/null || true
fi
# ================================================
# 2. Configure Iranian apt mirror
# ================================================
log "Configuring fastest Iranian apt mirror..."
bash <(curl -Ls --ipv4 https://raw.githubusercontent.com/Arash-Ariaye/irvm/refs/heads/main/smirror.sh) || \ log "${YELLOW}Warning: Iranian apt mirror setup failed, continuing...${NC}" # ================================================ # 3. Update system and install prerequisites # ================================================ log "Updating package lists..." apt-get update -qq || handle_error "apt update failed" log "Installing prerequisites..." apt-get install -y --no-install-recommends \ apt-transport-https \ ca-certificates \ curl \ gnupg \ software-properties-common \ lsb-release || handle_error "Failed to install prerequisites" # ================================================ # 4. Install Docker using official method # ================================================ log "Adding Docker official 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 download Docker GPG key" 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 setup Docker repository"
log "Updating apt after adding Docker repo..."
apt-get update -qq || handle_error "apt update after Docker repo failed"
log "Installing Docker components..."
apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin || handle_error "Docker installation failed"
# ================================================
# 5. Configure ArvanCloud mirror for Docker
# ================================================
log "Configuring ArvanCloud Docker mirror..."
mkdir -p /etc/docker
cat > /etc/docker/daemon.json < /dev/null && systemctl is-active --quiet docker; then
docker_version=$(docker --version)
log "${GREEN}✅ Docker installed successfully: ${docker_version}${NC}"
# Test pull with mirror
log "Testing hello-world image pull..."
docker run --rm hello-world | head -n 5 || \
log "${YELLOW}Warning: hello-world test had issues (may need more time).${NC}"
else
handle_error "Docker installation verification failed"
fi
log "${GREEN}🎉 Docker installation and configuration completed successfully!${NC}"
echo ""
echo -e "${GREEN}Helpful commands:${NC}"
echo "• Run without sudo: docker run hello-world"
echo "• View logs: journalctl -u docker -f"
echo "• ArvanCloud mirror is now active"نحوه استفاده از اسکریپت:
- اسکریپت بالا را کپی کرده و در فایلی به نام
install_docker_ir.shذخیره کنید. - مجوز اجرا را صادر کنید:
chmod +x install_docker_ir.sh - فایل را اجرا نمایید:
sudo ./install_docker_ir.sh
خروجی نمونه اجرای اسکریپت:
[2026-08-25 14:30:00] Configuring Docker daemon for ArvanCloud mirror... [2026-08-25 14:30:01] Logging out from Docker and restarting service... [2026-08-25 14:30:01] Docker logout completed or no login found [2026-08-25 14:30:03] Docker service restarted successfully [2026-08-25 14:30:03] ✅ Installation and configuration completed successfully! [2026-08-25 14:30:03] 💡 Tip: Test Docker with: docker run hello-world
جمعبندی نهایی و فراخوان به اقدام
این آموزش به طور کامل به شما نشان داد که چطور چالشهای نصب داکر در ایران را پشت سر بگذارید و روی سرور اوبونتو 22.04 یا نسخههای جدیدتر، با کمک DNSهای تحریمشکن (شکن، الکترو و غیره) و مخازن داخلی پایدار مانند ابرآروان، محیط ایزوله و قدرتمند خود را برای توسعه راهاندازی کنید.
برای استقرار کانتینرهای خود آمادهاید؟
برای میزبانی ایمن پروژههای داکری خود در بستری بدون قطعی و با پینگ فوقالعاده پایین، همین حالا پلنهای قدرتمند سرور مجازی ایران را از ایران وی ام (IRVM) بررسی کنید!
این مقاله چطور بود؟
گزینه ای را که بیشتر با نظرتان جور است انتخاب کنید.





دیدگاه ها
هنوز دیدگاهی ثبت نشده است، اولین نفر باشید.