نصب Docker در شرایط قطعی اینترنت بین‌الملل (ایران)

راهنمای جامع نصب Docker، تنظیم Mirror و اجرای پروژه‌های واقعی روی سرورهای لینوکس

مقدمه

یکی از چالش‌های رایج برای توسعه‌دهندگان و مدیران سرور در ایران، نصب و استفاده از Docker در شرایطی است که دسترسی به اینترنت بین‌الملل قطع یا محدود است. Docker Hub، مخازن رسمی بسته‌ها و سرویس‌های وابسته همگی روی زیرساخت خارجی هستند و بدون راهکار جایگزین، نصب و استفاده از Docker عملاً ممکن نیست.

این مقاله به صورت گام‌به‌گام توضیح می‌دهد که چطور می‌توان:

  • بسته‌های Docker را از میرورهای داخلی ایران نصب کرد
  • Registry Mirror تنظیم کرد تا ایمیج‌ها از داخل کشور pull شوند
  • یک پروژه واقعی (WordPress) را با Docker Compose راه‌اندازی کرد

تمام مراحل این مقاله روی Ubuntu 24.04 LTS (Noble) با معماری amd64 تست و تأیید شده‌اند، اما رویکرد کلی برای سایر توزیع‌های لینوکس نیز قابل استفاده است.

پیش‌نیازها

  • یک سرور یا VM با لینوکس (Ubuntu، Debian، CentOS و غیره)
  • دسترسی به اینترنت داخلی ایران
  • دسترسی به ترمینال با قابلیت sudo

گام اول: تنظیم Repository های سیستم

قبل از هر چیز، باید مطمئن شوید که منابع بسته‌های سیستم‌عامل شما به میرورهای داخلی اشاره می‌کنند. در غیر این صورت حتی apt update ساده هم ممکن است با مشکل مواجه شود.

راهنمای تنظیم Repo برای توزیع‌های مختلف

برای تنظیم repository بر اساس توزیع لینوکس خود، به مستندات زیر مراجعه کنید:

https://docs.parspack.com/server/repo/

در این صفحه، تنظیمات کامل برای توزیع‌های زیر موجود است:

  • Ubuntu (تمام نسخه‌ها)
  • Debian
  • CentOS / RHEL
  • AlmaLinux / Rocky Linux

نکته مهم: پس از تغییر فایل‌های repo، حتماً دستور بروزرسانی مناسب توزیع خود را اجرا کنید:

Ubuntu/Debian: sudo apt update

CentOS/RHEL/AlmaLinux: sudo dnf makecache

گام دوم: تنظیم Repository داکر

بسته‌های رسمی Docker CE از طریق میرور repo.abrha.net در دسترس هستند. این میرور نسخه‌های به‌روز Docker را برای Ubuntu Noble (24.04) نگهداری می‌کند.

۱. نصب پیش‌نیازها

sudo apt update
sudo apt install -y ca-certificates curl gnupg

۲. ساخت پوشه keyrings

sudo mkdir -p /etc/apt/keyrings

۳. دانلود و import کلید GPG داکر

curl -fsSL https://repo.abrha.net/docker/ubuntu/gpg -o /tmp/docker-key.asc
sudo gpg –dearmor < /tmp/docker-key.asc | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.gpg

چرا این مرحله مهم است؟ apt برای اطمینان از صحت بسته‌های دانلودی، امضای GPG آن‌ها را بررسی می‌کند. بدون import کلید عمومی، نصب با خطای امنیتی متوقف می‌شود.

۴. اضافه کردن repository داکر

echo “deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://repo.abrha.net/docker/ubuntu noble stable” | sudo tee /etc/apt/sources.list.d/docker.list

برای سایر نسخه‌های Ubuntu: عبارت noble را با codename نسخه خود جایگزین کنید. مثلاً برای Ubuntu 22.04 از jammy استفاده کنید.

گام سوم: نصب داکر

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

بررسی نصب

docker –version
docker compose version

خروجی مورد انتظار:

Docker version 29.4.0, build 9d7ad9f

Docker Compose version v5.1.2

گام چهارم: تنظیم Registry Mirror

حتی پس از نصب موفق Docker، برای pull کردن ایمیج‌ها نیاز به دسترسی به Docker Hub دارید که از ایران مسدود است. راه‌حل، تنظیم Registry Mirror داخلی است.

ایجاد فایل پیکربندی داکر

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
“registry-mirrors”: [
“https://docker.arvancloud.ir”,
“https://dockerhub.ir”
]
}
EOF

اعمال تنظیمات

sudo systemctl restart docker

 

توضیح: داکر هنگام pull یک ایمیج، ابتدا میرورها را به ترتیب امتحان می‌کند. اگر اولی پاسخ نداد، سراغ دومی می‌رود. این لیست را می‌توانید با میرورهای بیشتری تکمیل کنید.

میرورهای Registry شناخته‌شده داخلی

ArvanCloudhttps://docker.arvancloud.ir

DockerHub.irhttps://dockerhub.ir

گام پنجم: تست با اجرای hello-world

sudo docker run hello-world

اگر پیام زیر را دیدید، نصب کاملاً موفق بوده است:

Hello from Docker!

This message shows that your installation appears to be working correctly.

نکته: در صورتی که image مورد نظر در دفعه اول دریافت نشده، مجدد دستور رو تکرار کرده تا ادامه دریافت image انجام شود، ممکن هست نیاز باشد تا چند بار دستور رو تا دریافت کامل تکرار کنید.

گام ششم: اجرای یک پروژه واقعی با Docker Compose

برای اطمینان از اینکه محیط Docker شما آماده اجرای پروژه‌های واقعی است، یک stack کامل WordPress با دیتابیس MySQL راه‌اندازی می‌کنیم.

ساخت پوشه پروژه

mkdir ~/wordpress && cd ~/wordpress

ایجاد فایل docker-compose.yml

cat > docker-compose.yml <<EOF
services:
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass

wordpress:
image: wordpress:latest
restart: always
ports:
– “8080:80”
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wordpress
depends_on:
– db
EOF

اجرای پروژه

sudo docker compose up -d

 

بررسی وضعیت container ها

sudo docker compose ps

 

دسترسی به WordPress

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

hostname -I

سپس در مرورگر آدرس زیر را باز کنید:

http://<IP-سرور>:8080

صفحه نصب WordPress نمایش داده می‌شود و می‌توانید نصب را تکمیل کنید.

 

دستورات پرکاربرد داکر

sudo docker ps نمایش container های در حال اجرا
sudo docker ps -a نمایش تمام container ها
sudo docker images نمایش ایمیج‌های دانلود شده
sudo docker compose up -d اجرای پروژه در پس‌زمینه
sudo docker compose down توقف و حذف container های پروژه
sudo docker compose logs -f مشاهده لاگ‌های زنده پروژه
sudo docker system prune پاکسازی منابع بلااستفاده

جمع‌بندی

با طی کردن مراحل این مقاله، یک محیط Docker کاملاً کارآمد روی سرور لینوکسی خود دارید که:

  • بسته‌های آن از میرور داخلی repo.abrha.net نصب شده
  • ایمیج‌ها از طریق میرورهای داخلی مثل docker.arvancloud.ir pull می‌شوند
  • قادر به اجرای هر پروژه Docker Compose بدون نیاز به اینترنت بین‌الملل است

این راهکار برای محیط‌های production، staging و development به یک اندازه قابل استفاده است.

نوشته: امیرحسین سلطانی

تاریخ: فروردین ۱۴۰۵

امیرحسین سلطانی

Recent Posts

بهترین و جدیدترین تنظیمات جستجوی گوگل {متن و عکس}

در دنیای ارتباطات آنلاین، امروزه، رقابت برای جذب توجه و ترافیک وبسایت‌ها در گوگل بی‌پایان…

3 سال ago

بهترین روش ساخت سایت در گوگل! + (۳ روش سریع)

آیا تا به حال به دنبال راهکارهایی برای بهبود رتبه سایت خود در گوگل بوده‌اید؟…

3 سال ago

راهنما جامع ثبت سایت در موتورهای جستجوگر + {فیلم آموزشی}

آیا تا به حال به دنبال راهی برای افزایش رتبه سایت خود در موتورهای جستجوگر…

3 سال ago

گوگل سرچ کنسول چیست؟ و ۱۰+ کاری انجام می دهد؟!

در دنیای امروزی که وب‌سایت‌ها و رسانه‌های آنلاین جزئی از حیات روزمره ما شده‌اند، ابزارهایی…

3 سال ago

۰ تا ۱۰۰ ثبت سایت در گوگل + راهنما جامع و کامل

اگر صاحب یک وبسایت هستید، باید بدانید که برای افزایش بازدید سایت خود نیاز به…

3 سال ago

خرید سایت گوگل؛ چطور می شود؟!!! [راهنما تصویری!!!]

همان طور که ممکن است حدس زده باشید،‌ در این ویدیو قرار نیست بگوییم چطور…

3 سال ago