راهنمای جامع نصب Docker، تنظیم Mirror و اجرای پروژههای واقعی روی سرورهای لینوکس
مقدمه
یکی از چالشهای رایج برای توسعهدهندگان و مدیران سرور در ایران، نصب و استفاده از Docker در شرایطی است که دسترسی به اینترنت بینالملل قطع یا محدود است. Docker Hub، مخازن رسمی بستهها و سرویسهای وابسته همگی روی زیرساخت خارجی هستند و بدون راهکار جایگزین، نصب و استفاده از Docker عملاً ممکن نیست.
این مقاله به صورت گامبهگام توضیح میدهد که چطور میتوان:
تمام مراحل این مقاله روی Ubuntu 24.04 LTS (Noble) با معماری amd64 تست و تأیید شدهاند، اما رویکرد کلی برای سایر توزیعهای لینوکس نیز قابل استفاده است.
پیشنیازها
گام اول: تنظیم Repository های سیستم
قبل از هر چیز، باید مطمئن شوید که منابع بستههای سیستمعامل شما به میرورهای داخلی اشاره میکنند. در غیر این صورت حتی apt update ساده هم ممکن است با مشکل مواجه شود.
راهنمای تنظیم Repo برای توزیعهای مختلف
برای تنظیم repository بر اساس توزیع لینوکس خود، به مستندات زیر مراجعه کنید:
https://docs.parspack.com/server/repo/
در این صفحه، تنظیمات کامل برای توزیعهای زیر موجود است:
نکته مهم: پس از تغییر فایلهای 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 کاملاً کارآمد روی سرور لینوکسی خود دارید که:
این راهکار برای محیطهای production، staging و development به یک اندازه قابل استفاده است.
نوشته: امیرحسین سلطانی
تاریخ: فروردین ۱۴۰۵
در دنیای ارتباطات آنلاین، امروزه، رقابت برای جذب توجه و ترافیک وبسایتها در گوگل بیپایان…
آیا تا به حال به دنبال راهکارهایی برای بهبود رتبه سایت خود در گوگل بودهاید؟…
آیا تا به حال به دنبال راهی برای افزایش رتبه سایت خود در موتورهای جستجوگر…
در دنیای امروزی که وبسایتها و رسانههای آنلاین جزئی از حیات روزمره ما شدهاند، ابزارهایی…
اگر صاحب یک وبسایت هستید، باید بدانید که برای افزایش بازدید سایت خود نیاز به…
همان طور که ممکن است حدس زده باشید، در این ویدیو قرار نیست بگوییم چطور…