بسیاری از شما در ایران، با چالشهای نصب ابزارهای حیاتی مانند داکر (Docker) دست و پنجه نرم میکنید. تحریمهای اینترنتی و محدودیت دسترسی به مخازن بینالمللی مانند Docker Hub، میتواند فرآیند را طاقتفرسا کند. اما نگران نباشید!
این راهنمای جامع و کاملاً بهروز، به شما نشان میدهد که چگونه میتوانید این موانع را دور بزنید. ما از DNSهای تحریمشکن معتبر (مثل شکن) و همچنین از قدرت مخازن داخلی (مانند ابرآروان) استفاده خواهیم کرد تا نصب داکر در ایران را روی سرور اوبونتو ۲۲.۰۴، به تجربهای روان و بدون دردسر تبدیل کنیم. این مقاله برای توسعهدهندگان، مدیران سیستم، و هر کسی که میخواهد برنامههای خود را در محیطهای ایزوله و قابل حمل اجرا کند، ضروری است.
داکر چیست و چرا در ایران به آن نیاز داریم؟
داکر یک پلتفرم متنباز انقلابی است که نحوه توسعه، استقرار و اجرای برنامهها را دگرگون کرده است.
۱. کانتینرها: بستهبندی جادویی برنامهها
تصور کنید میخواهید یک برنامه را روی سرور خود اجرا کنید. این برنامه به کتابخانهها، تنظیمات، و وابستگیهای خاصی نیاز دارد. داکر این برنامه و تمام وابستگیهایش را در یک “کانتینر” بستهبندی میکند. این کانتینر:
-
سبک و قابل حمل است: در هر محیطی که داکر نصب باشد، بدون تغییر اجرا میشود (روی لپتاپ شما، سرور ابری، یا سرور مجازی ایران).
-
ایزوله است: کانتینرها از یکدیگر و از سیستمعامل میزبان جدا هستند، که امنیت و پایداری را افزایش میدهد.
-
سریع است: راهاندازی کانتینرها به مراتب سریعتر از ماشینهای مجازی است.

VM مانند یک خانه سنتی در برابر Docker Container به سادی و راحتی یک لگوی قابل حمل
۲. چالش تحریمها و راهحلهای ایرانی
متأسفانه، به دلیل تحریمها، دسترسی مستقیم به Docker Hub (مخزن اصلی ایمیجهای داکر) با IP ایران اغلب مسدود است. اینجاست که راهکارهای ما اهمیت پیدا میکنند:
-
DNSهای تحریمشکن: برای دور زدن محدودیتهای جغرافیایی.
-
مخازن داخلی: (مانند ابرآروان) که نسخههای کَششده ایمیجهای معروف را در داخل ایران نگهداری میکنند و سرعت بالایی دارند. (میتوانید از docker.ir نیز به عنوان جایگزین استفاده کنید.)

رفع تحریم های داکتر با با استفاده از ایمیج ابرآروان
🛠️ پیشنیازها: آمادهسازی سرور اوبونتو برای نصب داکر
قبل از شروع، مطمئن شوید که سرور شما آماده است:
-
سرور اوبونتو ۲۲.۰۴ (یا بالاتر): با حداقل ۲ گیگابایت رم، ۲ هسته CPU و ۲۰ گیگابایت فضای ذخیرهسازی. برای سرور مجازی ایران، این پیکربندی مناسب است (مثلاً از ارائهدهندگان معتبر).
-
دسترسی Root یا Sudo: برای اجرای دستورات نصب.
-
DNS تحریمشکن: برای دسترسی به Docker Hub (اختیاری، اما توصیه میشود):
-
شکن: 178.22.122.100 و 185.51.200.2 (میتوانید از الکترو 78.157.42.100 و 78.157.42.101 یا ۴۰۴ 10.202.10.10 و 10.202.10.11 نیز استفاده کنید.)
-
-
فایروال (اختیاری): پورتهای ۸۰ و ۴۴۳ (برای وبسرور) باید باز باشند. (میتوانید به یک
مراجعه کنید.)راهنمای جامع UFW
⚙️ مراحل نصب داکر: دور زدن تحریمها و استفاده از مخازن داخلی
این فرآیند را با دقت دنبال کنید تا نصب داکر در ایران با موفقیت انجام شود.
گام ۱: تنظیم DNS تحریمشکن (با تمرکز بر شکن)
این گام به شما اجازه میدهد تا در صورت نیاز، به مخزن اصلی Docker Hub دسترسی پیدا کنید.
-
اتصال به سرور با SSH:
ssh root@your-server-ip -
تهیه نسخه پشتیبان از فایل DNS برای جلوگیری از تغییرات ناخواسته در تنظیمات DNS
sudo cp /etc/resolv.conf /etc/resolv.conf.bak -
تنظیم DNS شکن:
sudo bash -c 'echo -e "nameserver 178.22.122.100\nnameserver 185.51.200.2" > /etc/resolv.conf'توضیح: این دستور آدرسهای DNS شکن را در فایل resolv.conf شما قرار میدهد. (در صورت تمایل میتوانید از DNSهای الکترو یا ۴۰۴ نیز به همین روش استفاده کنید.)
-
جلوگیری از بازنویسی خودکار DNS:
sudo chattr +i /etc/resolv.confتوضیح: این دستور مانع از آن میشود که سیستمعامل به صورت خودکار DNS را به حالت پیشفرض برگرداند.
گام ۲: نصب پیشنیازها و مخزن رسمی داکر
حالا سرور را برای نصب داکر آماده میکنیم.
-
بروزرسانی سیستم و نصب پکیجهای ضروری:
sudo apt update && sudo apt upgrade -y sudo apt install apt-transport-https ca-certificates curl software-properties-common -yتوضیح: این پکیجها برای برقراری ارتباط امن با مخازن HTTPS و افزودن کلیدهای GPG داکر ضروری هستند.
-
افزودن کلید GPG رسمی داکر:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgتوضیح: اگر این مرحله به دلیل تحریم با خطا مواجه شد، ممکن است نیاز به استفاده موقت از یک پراکسی یا VPN برای اجرای این دستور داشته باشید.
-
افزودن مخزن رسمی داکر به لیست منابع:
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-ce)، ابزار خط فرمان (docker-ce-cli)، زمان اجرای کانتینرها (containerd.io)، و افزونههای docker-buildx و docker-compose را نصب میکنند. Docker Compose برای مدیریت برنامههای چندکانتینری حیاتی است.
-
اضافه کردن کاربر به گروه داکر:
sudo usermod -aG docker $USER newgrp dockerتوضیح: این کار به شما اجازه میدهد تا بدون نیاز به sudo، دستورات داکر را اجرا کنید. newgrp docker بلافاصله تغییر را اعمال میکند.
گام ۳: تنظیم داکر برای استفاده از مخزن داخلی ابرآروان
برای اطمینان از دسترسی پایدار و سرعت بالا، استفاده از ریجستری ابرآروان توصیه میشود.
-
تنظیم داکر برای استفاده از مخزن ابرآروان:
sudo bash -c 'cat > /etc/docker/daemon.json <<EOF { "insecure-registries" : ["https://docker.arvancloud.ir"], "registry-mirrors": ["https://docker.arvancloud.ir"] } EOF'توضیح: این تنظیمات به داکر میگوید که ابتدا از مخزن ابرآروان برای کشیدن ایمیجها استفاده کند. این مخزن نیازی به DNS تحریمشکن ندارد و سرعت بسیار خوبی را ارائه میدهد. (میتوانید از docker.ir نیز به عنوان جایگزین استفاده کنید.)
-
راهاندازی مجدد سرویس داکر:
sudo systemctl restart docker
🚀 گامهای پیشرفته: مدیریت کانتینرها و Docker Compose
حالا که داکر نصب شده، بیایید کمی حرفهایتر کار کنیم.
گام ۱: کشیدن و اجرای ایمیج Nginx از ابرآروان
-
کشیدن ایمیج Nginx از ابرآروان:
docker pull docker.arvancloud.ir/nginx -
اجرای کانتینر Nginx:
docker run -d -p 80:80 --name my-nginx docker.arvancloud.ir/nginxتوضیح: این دستور یک وبسرور Nginx را راهاندازی میکند. پس از این مرحله، میتوانید برای تست به بخش ۶ (تست و عیبیابی) مراجعه کنید.
گام 2: مدیریت کانتینرها و ساخت ایمیجهای سفارشی
در این مرحله، نحوه مشاهده کانتینرهای فعال و غیرفعال و همچنین چگونگی ساخت یک ایمیج داکر سفارشی با استفاده از Dockerfile را بررسی میکنیم.
مشاهده لیست کانتینرهای فعال و غیرفعال
docker ps -a
ساخت Dockerfile سفارشی (مثال: نصب Nginx روی اوبونتو)
برای ساخت ایمیجهای داکر سفارشی خود، ابتدا یک دایرکتوری جدید برای پروژه ایجاد کرده و وارد آن شوید. این کار به حفظ نظم و جلوگیری از تداخل کمک میکند:
mkdir my_custom_nginx_image
cd my_custom_nginx_image
سپس، یک فایل به نام Dockerfile (دقیقاً با همین نام و با حرف D بزرگ، بدون هیچ پسوندی) با محتوای زیر ایجاد کنید. میتوانید از ویرایشگر nano استفاده کنید:
پس از اجرای دستور بالا، محتوای زیر را در ویرایشگر nano کپی و جایگذاری کنید:
FROM docker.arvancloud.ir/ubuntu:22.04
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
برای ذخیره فایل در nano، کلیدهای Ctrl+O را فشار دهید، سپس Enter را بزنید و در نهایت با Ctrl+X خارج شوید.
بیلد کردن ایمیج سفارشی
حالا که فایل Dockerfile را در دایرکتوری my_custom_nginx_image ایجاد کردهاید، میتوانید ایمیج داکر خود را بیلد کنید. اطمینان حاصل کنید که هنوز در همان دایرکتوری (my_custom_nginx_image) هستید:
docker build -t my-custom-nginx .
اجرای کانتینر از ایمیج سفارشی
این ایمیج my-custom-nginx اکنون در سیستم شما موجود است و میتوانید آن را اجرا کنید:
توضیح: ما پورت 8081 هاست را به پورت 80 کانتینر نگاشت کردیم تا با Nginx قبلی تداخل نداشته باشد.
گام 3: استفاده از Docker Compose برای برنامههای چندکانتینری
Docker Compose برای مدیریت برنامههایی با چندین سرویس (مثل یک وبسایت با دیتابیس و بکاند) ایدهآل است. برای استفاده از آن، ما یک فایل docker-compose.yml ایجاد میکنیم که تمام سرویسهای ما را تعریف میکند.
ایجاد فایل docker-compose.yml (مثال: Nginx و Redis)
ابتدا، یک دایرکتوری جدید برای پروژه Docker Compose خود ایجاد کنید و وارد آن شوید:
سپس، یک فایل به نام docker-compose.yml (دقیقاً با همین نام و با حروف کوچک، بدون پسوند) با محتوای زیر ایجاد کنید. میتوانید از ویرایشگر nano استفاده کنید:
پس از اجرای دستور بالا، محتوای زیر را در ویرایشگر nano کپی و جایگذاری کنید. این مثال شامل یک سرویس Nginx و یک سرویس Redis است:
version: '3.8'
services:
web:
image: docker.arvancloud.ir/nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
redis:
image: docker.arvancloud.ir/redis:latest
برای ذخیره فایل در nano، کلیدهای Ctrl+O را فشار دهید، سپس Enter را بزنید و در نهایت با Ctrl+X خارج شوید.
ایجاد فایل nginx.conf (برای مثال Docker Compose)
اگر از بخش volumes در docker-compose.yml استفاده میکنید، نیاز به یک فایل nginx.conf در همان دایرکتوری my_multi_service_app خواهید داشت. یک فایل ساده برای تست میتوانید بسازید:
nano nginx.conf
محتوای زیر را در آن قرار دهید:
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
location / {
return 200 "Hello from Nginx via Docker Compose!\n";
}
}
}
ذخیره و خروج (Ctrl+O، Enter، Ctrl+X).
اجرای Docker Compose
حالا که فایل docker-compose.yml (و nginx.conf اگر نیاز دارید) را ایجاد کردهاید، در همان پوشه my_multi_service_app، این دستور را اجرا کنید تا تمام سرویسها را راهاندازی کند:
docker compose up -d

تنظیم DNS در اوبونتو برای Docker Hub
🔒 گامهای امنیتی: تنظیم فایروال (UFW)
برای محافظت از سرور و کانتینرهای خود، تنظیم فایروال ضروری است.
-
نصب و فعالسازی UFW (اگر از قبل نصب نیست):
sudo apt install ufw -ysudo ufw enable -
اجازه دسترسی به پورتهای مورد نیاز:
مانند: پورت SSH و Nginx سفارشی و Nginx روی پورت 80 و Nginx با Docker Compose sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 8081/tcp sudo ufw allow 8082/tcpتوضیح: برای سایر پورتهایی که کانتینرهای شما ممکن است استفاده کنند، نیز اجازه دسترسی صادر کنید.
-
فعالسازی نهایی فایروال:
sudo ufw enable

ساخت ایمیل سفارشی داکر با Dockerfile
✅ گامهای نهایی: تست و عیبیابی داکر
برای اطمینان از عملکرد صحیح داکر و کانتینرهای شما، این مراحل را دنبال کنید:
-
بررسی نسخه داکر: برای اطمینان از نصب موفقیتآمیز داکر:
docker --versionتوضیح: باید نسخه ۲۰ یا بالاتر را مشاهده کنید. به عنوان مثال: Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1
-
بررسی وضعیت سرویس داکر: برای اطمینان از فعال و در حال اجرا بودن سرویس داکر:
sudo systemctl status dockerتوضیح: باید active (running) را مشاهده کنید.

3. تست hello-world: یک کانتینر ساده hello-world را اجرا کنید تا مطمئن شوید داکر میتواند ایمیجها را بکشد و اجرا کند:
docker run hello-world
توضیح: اگر داکر به درستی کار کند، پیامی مانند “Hello from Docker!” را در خروجی خواهید دید.
4. مشاهده کانتینرهای در حال اجرا: برای دیدن لیست کانتینرهایی که راهاندازی کردهاید (مانند Nginx):
docker ps -a
توضیح: این دستور تمام کانتینرهای فعال و غیرفعال را نشان میدهد. وضعیت کانتینرهای Nginx باید Up باشد.
5. مشاهده لاگهای کانتینر: اگر کانتینری به درستی کار نمیکند، لاگهای آن میتوانند سرنخهای خوبی برای عیبیابی به شما بدهند. مثلاً برای کانتینر my-nginx:
docker logs my-nginx
6. تست دسترسی از مرورگر: برای اطمینان از دسترسیپذیری وبسرورهای Nginx که راهاندازی کردهاید:
-
-
آدرس IP سرور خود را با پورت 80 (برای my-nginx)، پورت 8081 (برای my-custom-nginx-container)، یا پورت 8082 (برای Nginx با Docker Compose) در مرورگر باز کنید.
-
باید صفحه پیشفرض Nginx را مشاهده کنید. (مثلاً: http://your-server-ip:8082)
-
7. عیبیابی تحریمها: اگر هنگام docker pull یا docker run با خطاهای 403 Forbidden یا timeout مواجه شدید:
-
-
ابتدا DNS خود را دوباره چک کنید (گام ۳.۱) و از فعال بودن DNS تحریمشکن مطمئن شوید.
-
همیشه از مخازن داخلی مانند ابرآروان (گام ۳.۳) به عنوان راهکار اصلی استفاده کنید.
-
📝 خلاصهای از آنچه آموختیم:
-
داکر و تحریمها: فهمیدیم داکر چیست و چگونه تحریمها میتوانند نصب آن را در ایران دشوار کنند.
-
پیشنیازها: سرور اوبونتو ۲۲.۰۴ و دسترسی sudo آماده شد.
-
دور زدن تحریمها: نحوه تنظیم DNS تحریمشکن (شکن) را فرا گرفتیم.
-
نصب کامل داکر: مراحل نصب docker-ce، docker-ce-cli، containerd.io و docker-compose-plugin را طی کردیم.
-
مخازن داخلی: با پیکربندی داکر برای استفاده از مخازن ابرآروان آشنا شدیم.
-
مدیریت پیشرفته: نحوه ساخت Dockerfile سفارشی و استفاده از Docker Compose برای مدیریت چند کانتینر را یاد گرفتیم.
-
امنیت: فایروال UFW را برای محافظت از سرور تنظیم کردیم.
-
تست و عیبیابی: آموختیم چگونه نصب داکر را بررسی و مشکلات را رفع کنیم.
-
اسکریپت خودکار: یک اسکریپت جامع برای نصب سریع و بیدردسر داکر در اختیار شما قرار گرفت.
❓ سوال: آیا در حین نصب داکر در ایران با مشکل خاصی روبرو شدید که در این آموزش پوشش داده نشده باشد؟ تجربه خود را در بخش نظرات با ما و سایر کاربران به اشتراک بگذارید.

نصب داکر در ایران و شکستن قفل تحریمها
📞 جمعبندی
شما با موفقیت داکر را در ایران روی سرور اوبونتو ۲۲.۰۴ نصب و پیکربندی کردهاید. اکنون میتوانید با استفاده از DNSهای تحریمشکن و مخازن داخلی، کانتینرهای خود را برای توسعه، آزمایش، یا استقرار برنامههایتان راهاندازی و مدیریت کنید. این مهارت، گام بزرگی در مسیر حرفهای شما به عنوان یک توسعهدهنده یا مدیر سیستم است.
برای بهینهسازی عملکرد و امنیت کانتینرهای داکر خود، به یک زیرساخت سرور قدرتمند و پایدار نیاز دارید.
همین امروز با خرید سرور مجازی لینوکس (VPS) از Zoip Server، از منابع اختصاصی و پهنای باند بالا بهرهمند شوید تا داکر و کانتینرهای شما با بهترین کارایی اجرا شوند.
🔍 منابع:
[۱] Docker Documentation, Install Docker Engine on Ubuntu.
Available at: https://docs.docker.com/engine/install/ubuntu/
[۲] ArvanCloud, راهنمای استفاده از رجیستری داکر ابری.
Available at: https://www.arvancloud.ir/fa/cloud-docker/documentation/
[۳] Shecan.ir, DNS for bypassing sanctions.
Available at: https://www.shecan.ir/
[۴] Ubuntu Documentation, ufw.
Available at: https://ubuntu.com/server/docs/security-firewall
