نصب 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 محدود میشوند.
مرحلهٔ بعد: اجرای محیط تمرینی.