sq.

نصب Docker و Compose

آماده‌سازی یک سرور تازهٔ اوبونتو و بررسی Docker پیش از افزودن برنامه‌ها.

تاریخ انتشار:

پیش از شروع

ابتدا ماشین تمرینی را آماده کنید. این مراحل برای Ubuntu Server 24.04 تازه، اتصال اینترنت و کاربری با مجوز sudo هستند و نرم‌افزار را در سطح سیستم نصب می‌کنند. اگر Docker، Podman یا محیط کانتینری دیگری از قبل نصب است، از بخش مهاجرت راهنمای رسمی Docker استفاده کنید و بسته‌ها را با هم مخلوط نکنید.

سه اصطلاح

ایمیج بسته‌ای شامل برنامه و فایل‌های آن است. کانتینر نمونهٔ در حال اجرای یک ایمیج است. Compose تعریف سرویس‌ها، شبکه‌ها و فضای ذخیره‌سازی را از فایل YAML می‌خواند و از Docker می‌خواهد آن‌ها را بسازد. این راهنما از افزونهٔ docker compose استفاده می‌کند، نه برنامهٔ قدیمی docker-compose.

نصب روی سرور تمرینی

فرمان‌ها کلید امضا و مخزن بسته‌های Docker را اضافه می‌کنند و سپس موتور و افزونهٔ Compose را نصب می‌کنند. کل بلوک را در ترمینال سرور اجرا کنید. ممکن است sudo گذرواژهٔ کاربری را بخواهد که هنگام نصب اوبونتو ساخته‌اید. متن بین <<EOF و EOF در فایل مخزن بسته‌ها نوشته می‌شود.

sudo apt update
sudo apt install ca-certificates curl openssl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

بررسی نتیجه

sudo systemctl is-active docker
sudo docker version
sudo docker compose version
sudo docker run --rm hello-world

باید active، نسخهٔ کلاینت و سرور Docker، نسخهٔ Compose و پیام Hello from Docker را ببینید. کانتینر آزمایشی پس از چاپ پیام متوقف می‌شود. از نسخهٔ پشتیبانی‌شدهٔ Docker Engine ۲۸ یا جدیدتر استفاده کنید. نسخه‌های قدیمی‌تر یک استثنای مستند در محدود کردن پورت به loopback دارند. توضیح انتشار پورت در Docker

در این تمرین‌ها از sudo docker استفاده کنید. عضویت در گروه Docker عملاً اختیاری معادل root می‌دهد و راه‌حل بی‌خطری برای خطای مجوز نیست. امنیت Docker

اگر بررسی ناموفق بود

  • اتصال به daemon برقرار نمی‌شود: با sudo systemctl status docker --no-pager و sudo journalctl -u docker -n 50 --no-pager وضعیت و گزارش‌ها را بخوانید. پیش از راه‌اندازی دوباره علت را پیدا کنید.
  • Permission denied: از sudo استفاده کنید. سوکت Docker را برای همه قابل‌نوشتن نکنید.
  • فرمان Compose وجود ندارد: نصب موفق docker-compose-plugin را بررسی کنید. نصب برنامهٔ قدیمی پایتونی جایگزین این افزونه نیست.
  • دانلود یا تبدیل نام خطا دارد: پیش از تغییر Compose، اینترنت و DNS سرور را بررسی کنید.

برای موفق شدن آزمایش، مدیریت فایروال Docker را غیرفعال نکنید و روی روتر پورت باز نکنید. پورت‌های کانتینر ممکن است از مسیر متفاوتی نسبت به سرویس‌های میزبان عبور کنند. در تمرین بعد پورت‌ها به loopback محدود می‌شوند.

مرحلهٔ بعد: اجرای محیط تمرینی.

همهٔ یادداشت‌ها →