نحوه نصب Docker روی Ubuntu
در این صفحه
Docker برنامهها را در کانتینر اجرا میکند: هر کانتینر هر چیزی را که لازم دارد همراه خودش دارد، بنابراین روی لپتاپ شما و روی سرور یکسان اجرا میشود. وبسایتها، پایگاههای داده، رباتها و سرورهای بازی را میتوان با یک فرمان یا یک فایل Compose راهاندازی کرد.
این راهنما Docker Engine و Docker Compose را از مخزن رسمی Docker روی Ubuntu 24.04 یا 22.04 نصب میکند و سپس تنظیماتی را که روی یک سرور واقعی اهمیت دارند توضیح میدهد: دسترسیها، لاگها و فایروال.
پیش از شروع
- یک نسخه پشتیبانیشده از Ubuntu: Docker از نسخههای ۶۴ بیتی Ubuntu 26.04، 24.04 و 22.04 LTS پشتیبانی میکند. نسخه خود را با
cat /etc/os-releaseبررسی کنید. - سرور KVM، نه کانتینر: Docker به قابلیتهای هسته مخصوص خودش نیاز دارد. روی هر VPS از نوع KVM اجرا میشود، اما روی پلنهای مبتنی بر کانتینر (OpenVZ یا LXC) اغلب اجرا نمیشود.
- root یا کاربری با sudo. فرمانهای زیر از
sudoاستفاده میکنند؛ اگر با root وارد شدهاید، میتوانید آن را حذف کنید.
روی سرورها از بسته docker.io در مخزن خود Ubuntu و نسخه Snap استفاده نکنید: مخزن Docker نسخههای جدید را زودتر دریافت میکند و مستندات رسمی Docker هم از همین مخزن استفاده میکند.
Docker به یک ماشین مجازی واقعی نیاز دارد: پلنهای HytHost KVM VPS با Ubuntu و دسترسی کامل root از €2.92 در ماه شروع میشوند.
مشاهده پلنهای VPSمرحله ۱: حذف بستههای متداخل
اگر قبلاً Docker را از منبع دیگری نصب کردهاید، ابتدا آن بستهها را حذف کنید. روی یک سرور تازه، apt فقط گزارش میدهد که هیچکدام نصب نیستند:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
این کار ایمیجها و volumeهای موجود در /var/lib/docker/ را پاک نمیکند.
مرحله ۲: افزودن مخزن Docker
این فرمانها که از مستندات Docker گرفته شدهاند، کلید امضای Docker و مخزن apt آن را برای نسخه Ubuntu شما اضافه میکنند:
sudo apt update
sudo apt install ca-certificates curl
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 <<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
مرحله ۳: نصب Docker و Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
این فرمان Docker Engine، ابزار خط فرمان، سازنده Buildx و افزونه Compose را نصب میکند. بررسی کنید که کار میکند:
sudo docker run hello-world docker compose version
فرمان اول یک ایمیج آزمایشی بسیار کوچک دانلود میکند و یک پیام خوشامد چاپ میکند. در Ubuntu، Docker هنگام بوت بهطور خودکار اجرا میشود، پس نیازی به فعالسازی چیزی نیست.
Compose همان فرمان docker compose با فاصله است. فرمان قدیمی docker-compose با خط تیره، نسخه اول و بازنشستهشده است؛ راهنماهایی که هنوز از آن استفاده میکنند با فرمان جدید هم کار میکنند.
مرحله ۴: دسترسیها و چرخش لاگها
اجرای docker بدون sudo. کاربر خود را به گروه docker اضافه کنید، سپس خارج شوید و دوباره وارد شوید:
sudo usermod -aG docker $USER
توجه داشته باشید که خود Docker هشدار میدهد این گروه دسترسی در سطح root میدهد: هر کسی که در آن باشد میتواند کل سرور را کنترل کند. فقط کاربرانی را اضافه کنید که حاضرید به آنها root بدهید.
محدود کردن حجم لاگها. بهطور پیشفرض لاگهای کانتینرها بدون محدودیت بزرگ میشوند و ممکن است دیسک را پر کنند. فایل /etc/docker/daemon.json را بسازید:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
سپس sudo systemctl restart docker را اجرا کنید. این محدودیت روی کانتینرهایی اعمال میشود که پس از تغییر ساخته میشوند، پس کانتینرهای موجود را دوباره بسازید.
اولین فایل Compose
Compose کانتینرهای شما را در یک فایل توصیف میکند. یک پوشه با فایل compose.yaml بسازید:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
آن را با docker compose up -d اجرا کنید، با docker compose ps وضعیتش را ببینید و لاگهایش را با docker compose logs بخوانید. restart: unless-stopped کانتینر را پس از کرش یا راهاندازی مجدد دوباره بالا میآورد. پورت عمداً به 127.0.0.1 متصل شده است؛ بخش بعد دلیلش را توضیح میدهد.
Docker و ufw: تله فایروال
تقریباً همه در این تله میافتند. وقتی پورتی را منتشر میکنید، مثلاً -p 8080:80، Docker قوانین فایروال خودش را اضافه میکند که پیش از قوانین ufw اعمال میشوند. پورت حتی اگر ufw آن را بسته نشان دهد، روی اینترنت باز است.
- پورتها را به localhost متصل کنید وقتی فقط خود سرور به آنها نیاز دارد، مثلاً یک پایگاه داده یا برنامهای پشت reverse proxy:
127.0.0.1:8080:80. - پورتهای پایگاه داده را اصلاً منتشر نکنید؛ به جای آن بگذارید کانتینرها از طریق یک شبکه Docker با هم ارتباط داشته باشند.
- برای فیلتر بر اساس آدرس مبدأ، قوانین را به زنجیره iptables به نام
DOCKER-USERاضافه کنید که Docker پیش از قوانین خودش بررسی میکند.
همین موضوع برای سرورهای بازی که در Docker اجرا میشوند هم صدق میکند؛ ببینید چگونه یک VPS را برای سرورهای بازی راهاندازی کنیم.
Docker روی VPS در HytHost
پلنهای VPS در HytHost روی KVM اجرا میشوند، بنابراین هر VPS هسته مخصوص خودش را دارد و Docker بدون محدودیت اجرا میشود. هنگام سفارش Ubuntu 24.04 یا 22.04 را انتخاب کنید، از طریق SSH متصل شوید و مراحل بالا را دنبال کنید. دسترسی کامل root، فضای ذخیرهسازی SSD و محافظت DDoS دریافت میکنید و میتوانید بعداً با رشد کانتینرهایتان به پلن بزرگتری ارتقا دهید.
پرسشهای متداول
Docker از نسخههای ۶۴ بیتی Ubuntu 26.04، 24.04 و 22.04 LTS پشتیبانی میکند. سیستمهای دیگر مبتنی بر Ubuntu، مانند Linux Mint، بهطور رسمی پشتیبانی نمیشوند.
روی سرور production نه. Docker میگوید این اسکریپت برای محیطهای توسعه است و برای production توصیه نمیشود؛ همچنین ممکن است به یک نسخه اصلی جدید بپرد. به جای آن از روش مخزن استفاده کنید.
docker-compose با خط تیره نسخه قدیمی و بازنشستهشده است. امروز Compose یک افزونه Docker است که به شکل docker compose استفاده میشود و با بسته docker-compose-plugin نصب میشود.
پورتهایی که Docker منتشر میکند ufw را دور میزنند. اگر پورت باید محلی بماند آن را به 127.0.0.1 متصل کنید، یا آن را در زنجیره DOCKER-USER فیلتر کنید.
روی VPS از نوع KVM، بله. پلنهای VPS مبتنی بر کانتینر، مانند OpenVZ، اغلب نمیتوانند Docker را اجرا کنند یا به تنظیمات ویژه از سوی ارائهدهنده نیاز دارند.
کانتینرهای خود را روی VPS اجرا کنید
پلنهای HytHost KVM VPS، Docker را بدون محدودیت اجرا میکنند، با دسترسی کامل root و Ubuntu 24.04، از €2.92 در ماه.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursاین راهنما برایتان مفید بود؟