آموزش نصب Docker و Docker Compose روی اوبونتو با استفاده از میرورهای داخلی (در زمان قطع اینترنت بین الملل)
پیشنیازها
پیش از شروع نصب، موارد زیر را بررسی کنید:
- سیستمعامل Ubuntu 20.04، 22.04 یا 24.04
- دسترسی کاربر دارای مجوز
sudo - اتصال به شبکهای که امکان دسترسی به میرور پارسپک را داشته باشد
- بهروزرسانی سیستمعامل
مرحله اول: حذف نسخههای قدیمی Docker
اگر Docker یا ابزارهای مرتبط قبلاً روی سیستم نصب شده باشند، بهتر است ابتدا آنها را حذف کنید تا از بروز تداخل در زمان نصب جلوگیری شود.
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
این دستور تمامی بستههای قدیمی Docker، Docker Compose، Containerd و سایر مؤلفههای مرتبط را از سیستم حذف میکند.
مرحله دوم: بهروزرسانی مخازن و نصب پیشنیازها
در ادامه، فهرست بستههای سیستم را بهروزرسانی کرده و ابزارهای موردنیاز برای اضافه کردن مخزن Docker را نصب کنید.
sudo apt update
sudo apt install ca-certificates curl
در این مرحله:
- ca-certificates برای اعتبارسنجی گواهینامههای SSL استفاده میشود.
- curl وظیفه دریافت کلید امنیتی و فایلهای موردنیاز از مخزن را بر عهده دارد.
مرحله سوم: دریافت کلید امنیتی (GPG)
برای اطمینان از صحت و اصالت بستههای نرمافزاری، ابتدا باید کلید امنیتی مخزن پارسپک را به سیستم اضافه کنید.
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://repo.abrha.net/docker/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
در این مرحله:
- مسیر ذخیره کلیدهای امنیتی ایجاد میشود.
- کلید GPG مخزن دانلود میشود.
- سطح دسترسی فایل به گونهای تنظیم میشود که APT بتواند از آن استفاده کند.
مرحله چهارم: افزودن مخزن Docker پارسپک
اکنون باید مخزن Docker را به سیستم اضافه کنید. دستور زیر نسخه اوبونتوی نصبشده را بهصورت خودکار تشخیص داده و مخزن مناسب را پیکربندی میکند.
. /etc/os-release
printf '%s\n' \
"Types: deb" \
"URIs: https://repo.abrha.net/docker/ubuntu" \
"Suites: ${UBUNTU_CODENAME:-$VERSION_CODENAME}" \
"Components: stable" \
"Architectures: $(dpkg --print-architecture)" \
"Signed-By: /etc/apt/keyrings/docker.asc" | sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null
این روش نسبت به اضافه کردن دستی فایلهای sources.list انعطافپذیرتر است و بدون نیاز به تغییر دستورات، روی نسخههای مختلف Ubuntu کار میکند.
مرحله پنجم: نصب Docker و Docker Compose
پس از اضافه شدن مخزن، کافی است فهرست بستهها را مجدداً بهروزرسانی کرده و Docker را نصب کنید.
sudo apt update && \
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
با اجرای این دستور، مؤلفههای زیر نصب خواهند شد:
- Docker Engine (docker-ce) برای اجرای کانتینرها
- Docker CLI برای مدیریت Docker از طریق خط فرمان
- Containerd بهعنوان Runtime کانتینرها
- Docker Buildx برای ساخت Imageهای پیشرفته
- Docker Compose Plugin برای مدیریت پروژههای چندکانتینری
نکته: در نسخههای جدید Docker، ابزار Compose بهصورت یک افزونه رسمی ارائه میشود و با دستور
docker composeاجرا میشود. ابزار قدیمیdocker-composeدیگر روش پیشنهادی Docker نیست.
بررسی صحت نصب
پس از پایان نصب، نسخه Docker را بررسی کنید.
docker --version
همچنین برای اطمینان از نصب صحیح Docker Compose دستور زیر را اجرا کنید.
docker compose version
در صورت مشاهده شماره نسخه، نصب با موفقیت انجام شده است.
بررسی وضعیت سرویس Docker
برای اطمینان از فعال بودن سرویس Docker، دستور زیر را اجرا کنید.
sudo systemctl status docker
در صورت غیرفعال بودن سرویس، آن را فعال کنید.
sudo systemctl enable --now docker
اجرای اولین کانتینر
برای آزمایش عملکرد Docker، کانتینر آزمایشی Hello World را اجرا کنید.
sudo docker run hello-world
اگر پیام خوشامدگویی Docker نمایش داده شود، نصب بهدرستی انجام شده است.
اجرای Docker بدون sudo
برای اینکه نیازی به استفاده از sudo در هر بار اجرای Docker نداشته باشید، کاربر فعلی را به گروه Docker اضافه کنید.
sudo usermod -aG docker $USER
سپس یکبار از حساب کاربری خارج و دوباره وارد شوید یا دستور زیر را اجرا کنید.
newgrp docker
جمعبندی
استفاده از میرورهای پارسپک یکی از بهترین روشهای نصب Docker و Docker Compose در شرایطی است که دسترسی به مخازن رسمی Docker وجود ندارد یا سرعت دانلود از آنها پایین است. با افزودن مخزن پارسپک، میتوان آخرین نسخههای Docker Engine، Docker Compose Plugin و سایر ابزارهای مرتبط را بهسادگی نصب و بهروزرسانی کرد. این روش علاوه بر کاهش وابستگی به اینترنت بینالملل، فرایند نصب را پایدارتر و سریعتر کرده و گزینهای مناسب برای سرورهای داخلی، دیتاسنترها و محیطهای سازمانی محسوب میشود.