×

آموزش نصب Docker و Docker Compose روی Ubuntu پرینت


 

آموزش نصب Docker و Docker Compose روی Ubuntu

مقدمه:

در این آموزش نصب Docker و Docker Compose روی Ubuntu از مخزن رسمی Docker استفاده می‌کنیم تا Docker Engine، ابزار خط فرمان، Containerd، افزونه Buildx و Docker Compose Plugin نصب شوند. پس از نصب، وضعیت سرویس را بررسی کرده، کانتینر آزمایشی اجرا می‌کنیم و یک سرویس ساده را با Compose بالا می‌آوریم. این راهنما برای سرور تازه یا سیستمی مناسب است که قبلاً سرویس کانتینری مهمی روی آن اجرا نشده باشد؛ در سرور عملیاتی ابتدا باید از داده‌ها و تنظیمات نسخه پشتیبان بگیرید.

فهرست مطالب

  • پیش‌نیازهای نصب Docker
  • انتخاب روش مناسب نصب
  • بررسی نسخه و معماری Ubuntu
  • حذف بسته‌های ناسازگار
  • افزودن مخزن رسمی Docker
  • نصب Docker Engine و Compose
  • تست نصب و بررسی سرویس
  • اجرای Docker بدون sudo
  • اجرای پروژه آزمایشی با Compose
  • تنظیم شروع خودکار سرویس
  • نکات امنیتی، فایروال و بکاپ
  • به‌روزرسانی و رفع خطاهای رایج
  • چک‌لیست نهایی
  • جمع‌بندی و سؤالات متداول

پیش‌نیازهای نصب Docker روی Ubuntu

برای نصب به یک سیستم Ubuntu پشتیبانی‌شده، معماری سازگار، دسترسی اینترنت و حساب کاربری دارای مجوز sudo نیاز دارید. اگر از سرور مجازی استفاده می‌کنید، باید دسترسی SSH و امکان نصب بسته‌های سیستمی نیز فراهم باشد.

پیش از شروع این موارد را بررسی کنید:

  • دسترسی SSH یا Terminal پایدار دارید.
  • کاربر فعلی اجازه اجرای sudo دارد.
  • فضای آزاد دیسک برای Imageها، Containerها و Volumeها کافی است.
  • تاریخ و ساعت سیستم صحیح است.
  • از تنظیمات و داده‌های Docker قبلی نسخه پشتیبان گرفته‌اید.
  • فایروال و پورت‌های منتشرشده را می‌شناسید.
  • سرویس مهمی در زمان نصب یا حذف بسته‌های قدیمی اجرا نمی‌شود.

برای مشاهده فضای دیسک:

df -h

برای بررسی حافظه و پردازنده:

free -h
lscpu

برای مشاهده نسخه سیستم‌عامل:

cat /etc/os-release

و برای بررسی معماری:

dpkg --print-architecture

اگر Ubuntu شما مشتق‌شده، بسیار قدیمی یا دارای Kernel سفارشی است، سازگاری نسخه را در مستندات رسمی Docker بررسی کنید. روش مخزن رسمی Docker برای سرورهای قابل نگهداری، انتخاب مناسب‌تری از اسکریپت نصب سریع است.

اگر در انتخاب نسخه Ubuntu، ظرفیت VPS یا ساختار مناسب کانتینرها تردید دارید، کارشناسان شرکت تجارت الکترونیک نوژن می‌توانند نیاز پردازشی، حافظه، فضای ذخیره‌سازی و معماری پروژه را بررسی کنند.

مطالعه بیشتر: Docker چیست و چه کاربردی در سرور مجازی دارد؟

مقایسه روش‌های نصب Docker در Ubuntu

Docker Engine را می‌توان از مخزن رسمی، فایل‌های بسته یا اسکریپت آماده نصب کرد. انتخاب روش باید براساس نوع محیط و شیوه نگهداری سرور انجام شود.

روش نصب مزیت محدودیت کاربرد مناسب
مخزن رسمی APT به‌روزرسانی و نگهداری منظم با Package Manager نیازمند افزودن Repository و کلید رسمی سرورهای عملیاتی و اغلب کاربران
نصب فایل‌های DEB کنترل روی فایل و نسخه نصب‌شده به‌روزرسانی‌ها باید دستی مدیریت شوند محیط بدون دسترسی مستقیم به Repository
اسکریپت Convenience راه‌اندازی سریع کنترل کمتر و احتمال ارتقای پیش‌بینی‌نشده محیط آزمایشی و توسعه
بسته docker.io اوبونتو نصب ساده از مخزن توزیع نسخه و ساختار بسته با Docker CE رسمی متفاوت است سناریوهایی که عمداً بسته توزیع انتخاب شده است
نصب دستی Compose امکان انتخاب فایل و نسخه مشخص به‌روزرسانی خودکار ندارد شرایط خاص و محیط کنترل‌شده

مستندات Docker استفاده از مخزن رسمی APT را برای نصب و به‌روزرسانی Docker Engine روی Ubuntu توضیح می‌دهند. اسکریپت آماده بیشتر برای محیط توسعه و آزمایش توصیه شده است، نه استقرار عملیاتی. Docker Docs

برای اجرای کانتینرهای عملیاتی می‌توانید مشخصات سرورهای مجازی شرکت تجارت الکترونیک نوژن را مشاهده کنید. تعداد کانتینرها، دیتابیس، حجم Imageها، بکاپ و مصرف RAM باید پیش از انتخاب پلن محاسبه شوند.

مطالعه بیشتر: خرید سرور مجازی لینوکس

آموزش نصب Docker و Docker Compose روی Ubuntu

در این بخش از روش رسمی Repository استفاده می‌کنیم. دستورات را مرحله‌به‌مرحله اجرا کنید و در صورت مشاهده خطا، قبل از ادامه علت آن را برطرف کنید.

مرحله اول: بررسی وجود Docker قبلی

ابتدا ببینید آیا Docker، Containerd یا Compose از قبل نصب شده‌اند:

docker --version
docker compose version
dpkg -l | grep -E 'docker|containerd|runc'

اگر سرور از قبل کانتینر، Image یا Volume دارد، حذف بسته‌ها را بدون بررسی انجام ندهید. ابتدا موارد موجود را مشاهده کنید:

sudo docker ps -a
sudo docker image ls
sudo docker volume ls

پاک‌کردن بسته نرم‌افزاری لزوماً داده‌های مسیر /var/lib/docker را حذف نمی‌کند، اما تغییر پکیج‌ها می‌تواند سرویس‌های در حال اجرا را متوقف کند. از Volumeها، فایل‌های Compose و اطلاعات دیتابیس نسخه پشتیبان بگیرید.

مرحله دوم: حذف بسته‌های ناسازگار

بسته‌های غیررسمی یا قدیمی ممکن است با بسته‌های Docker CE تداخل داشته باشند. در یک سرور تازه یا پس از تأیید بکاپ، بسته‌های ناسازگار را با دستور رسمی بررسی و حذف کنید:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

اگر هیچ‌کدام نصب نباشند، APT ممکن است اعلام کند بسته‌ای برای حذف پیدا نشده است. Docker توصیه می‌کند بسته‌های متداخل مانند docker.io، نسخه قدیمی Compose، containerd و runc قبل از نصب نسخه رسمی بررسی شوند. Docker Docs

این دستور را روی سرور دارای Docker عملیاتی بدون برنامه مهاجرت اجرا نکنید. توقف Docker می‌تواند تمام کانتینرهای فعال را از دسترس خارج کند.

مرحله سوم: به‌روزرسانی فهرست بسته‌ها

فهرست بسته‌های Ubuntu را به‌روزرسانی کنید:

sudo apt update

سپس ابزارهای لازم برای دریافت کلید مخزن را نصب کنید:

sudo apt install ca-certificates curl

اگر APT خطای Repository یا Dependency نمایش داد، قبل از ادامه همان خطا را رفع کنید.

مرحله چهارم: افزودن کلید GPG رسمی Docker

دایرکتوری نگهداری کلیدهای APT را بسازید:

sudo install -m 0755 -d /etc/apt/keyrings

کلید رسمی Docker را دریافت کنید:

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

گزینه -f در Curl باعث می‌شود خطاهای HTTP به‌عنوان شکست دستور در نظر گرفته شوند. اگر دریافت کلید ناموفق بود، فایل ناقص را مبنای ادامه نصب قرار ندهید.

مرحله پنجم: افزودن Repository رسمی Docker

برای افزودن منبع رسمی APT، دستور زیر را اجرا کنید:

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

این دستور نام نسخه Ubuntu و معماری سیستم را از خود سرور دریافت می‌کند. محتوای فایل ساخته‌شده را می‌توانید بررسی کنید:

cat /etc/apt/sources.list.d/docker.sources

سپس فهرست بسته‌ها را دوباره به‌روزرسانی کنید:

sudo apt update

اگر با خطای Release File، معماری یا Codename روبه‌رو شدید، احتمال دارد نسخه یا توزیع نصب‌شده در Repository رسمی پشتیبانی نشود. در چنین شرایطی نام نسخه را به‌صورت حدسی تغییر ندهید.

مرحله ششم: نصب Docker Engine و Docker Compose

اکنون بسته‌های موردنیاز را نصب کنید:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

این دستور اجزای زیر را نصب می‌کند:

  • docker-ce: موتور Docker
  • docker-ce-cli: ابزار خط فرمان Docker
  • containerd.io: Runtime موردنیاز کانتینرها
  • docker-buildx-plugin: افزونه Buildx
  • docker-compose-plugin: نسخه Plugin ابزار Compose

مخزن رسمی Docker، افزونه Compose را همراه سایر بسته‌های لازم قابل نصب می‌کند. روش امروزی اجرای Compose به شکل docker compose با فاصله است، نه فرمان قدیمی docker-compose. Docker Docs

مرحله هفتم: بررسی وضعیت سرویس Docker

وضعیت سرویس را مشاهده کنید:

sudo systemctl status docker

اگر صفحه وضعیت در Pager باز شد، برای خروج کلید q را فشار دهید.

اگر سرویس فعال نبود، آن را اجرا کنید:

sudo systemctl start docker

برای بررسی خلاصه وضعیت بدون ورود به Pager:

sudo systemctl is-active docker

خروجی active نشان می‌دهد سرویس اجرا شده است؛ اما برای اطمینان از کارکرد کامل باید یک کانتینر آزمایشی نیز اجرا شود.

مرحله هشتم: بررسی نسخه‌های نصب‌شده

نسخه Docker Engine و Client را مشاهده کنید:

sudo docker version

نسخه Docker Compose:

sudo docker compose version

نسخه Buildx:

sudo docker buildx version

در صورت نمایش نسخه‌ها، ابزارهای خط فرمان نصب شده‌اند. دستور docker version همچنین باید بتواند با Docker Daemon ارتباط برقرار کند.

مرحله نهم: اجرای کانتینر آزمایشی

برای آزمایش نصب:

sudo docker run --rm hello-world

Docker ابتدا Image آزمایشی را دریافت می‌کند، سپس کانتینر را اجرا کرده و پس از پایان به دلیل گزینه --rm آن را حذف می‌کند. اجرای موفق این Image یکی از مراحل تأیید نصب در راهنمای رسمی Docker است. Docker Docs

برای مشاهده Image دریافت‌شده:

sudo docker image ls

و برای دیدن کانتینرهای در حال اجرا:

sudo docker ps

کانتینر hello-world پس از نمایش پیام خاتمه می‌یابد؛ بنابراین در فهرست کانتینرهای فعال دیده نمی‌شود.

تنظیم اجرای Docker بدون sudo

به‌صورت پیش‌فرض، دسترسی به Socket داکر محدود است و معمولاً دستورات با sudo اجرا می‌شوند. امکان افزودن کاربر به گروه docker وجود دارد، اما این عضویت اختیاراتی در سطح Root ایجاد می‌کند و نباید به کاربران غیرقابل اعتماد داده شود. Docker Docs

برای بررسی وجود گروه Docker:

getent group docker

در صورتی که گروه وجود دارد و تصمیم امنیتی شما افزودن کاربر فعلی است:

sudo usermod -aG docker "$USER"

برای اعمال عضویت، از نشست SSH خارج شوید و دوباره وارد شوید. استفاده از دستور زیر نیز می‌تواند یک Shell جدید با گروه Docker ایجاد کند:

newgrp docker

سپس آزمایش کنید:

docker run --rm hello-world

عضویت در گروه Docker صرفاً یک راه راحتی نیست؛ دسترسی قدرتمندی روی میزبان ایجاد می‌کند. برای سرور مشترک یا محیط دارای کاربران متعدد، استفاده از sudo، Rootless Mode یا طراحی دسترسی محدود را بررسی کنید.

مطالعه بیشتر: آموزش ساخت User و دادن دسترسی Sudo در Ubuntu

اجرای پروژه آزمایشی با Docker Compose

برای آزمایش Compose یک پوشه مجزا ایجاد کنید:

mkdir -p ~/docker-nginx-test

وارد پوشه شوید:

cd ~/docker-nginx-test

فایلی با نام compose.yaml بسازید و محتوای زیر را در آن قرار دهید:

services:
  web:
    image: nginx:alpine
    container_name: nginx-test
    ports:
      - "8080:80"
    restart: unless-stopped

قبل از اجرا، صحت ساختار فایل را بررسی کنید:

docker compose config

اگر دسترسی گروه Docker را تنظیم نکرده‌اید، فرمان را با sudo اجرا کنید:

sudo docker compose config

برای دریافت Image و اجرای سرویس در پس‌زمینه:

docker compose up -d

وضعیت سرویس:

docker compose ps

مشاهده لاگ‌ها:

docker compose logs --tail=50

در مرورگر می‌توانید نشانی زیر را باز کنید:

http://SERVER-IP:8080

دسترسی به این نشانی به فایروال سرور، فایروال ارائه‌دهنده و سیاست شبکه بستگی دارد. پورت آزمایشی را فقط در صورت نیاز و برای IPهای موردنظر باز کنید.

برای متوقف‌کردن و حذف کانتینر و شبکه ساخته‌شده:

docker compose down

در این مثال Volume تعریف نشده است. در پروژه‌های دارای دیتابیس یا اطلاعات ماندگار، پیش از اجرای down یا حذف Volume باید ساختار ذخیره‌سازی و بکاپ را بررسی کنید.

نکته مهم درباره Docker و فایروال Ubuntu

انتشار پورت کانتینر با گزینه‌هایی مانند ports یا -p می‌تواند رفتاری متفاوت از انتظار شما در UFW ایجاد کند. مستندات Docker هشدار می‌دهند که پورت‌های منتشرشده کانتینر ممکن است قواعد UFW را دور بزنند؛ بنابراین نباید صرفاً با مشاهده وضعیت UFW، پورت کانتینر را بسته فرض کنید. Docker Docs

پس از اجرای هر کانتینر، پورت‌های در حال Listen را بررسی کنید:

sudo ss -lntup

فهرست پورت‌های منتشرشده Docker:

docker ps --format 'table {{.Names}}\t{{.Ports}}'

برای سرویس‌هایی مانند دیتابیس، Redis و پنل‌های مدیریتی معمولاً بهتر است پورت مستقیماً روی IP عمومی منتشر نشود. این سرویس‌ها می‌توانند از طریق شبکه داخلی Docker با برنامه ارتباط داشته باشند.

مطالعه بیشتر: آموزش تنظیم فایروال UFW در Ubuntu

فعال‌کردن اجرای خودکار Docker پس از Restart

در نصب‌های استاندارد روی Ubuntu، سرویس Docker معمولاً برای شروع خودکار تنظیم می‌شود. وضعیت آن را بررسی کنید:

sudo systemctl is-enabled docker

همچنین Containerd را بررسی کنید:

sudo systemctl is-enabled containerd

در صورت نیاز:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

فعال‌شدن Docker به معنی اجرای خودکار همه کانتینرها نیست. رفتار هر کانتینر به Restart Policy آن بستگی دارد.

گزینه restart: unless-stopped در Compose باعث می‌شود سرویس پس از راه‌اندازی Docker دوباره اجرا شود، مگر اینکه قبلاً به‌صورت دستی متوقف شده باشد. انتخاب سیاست Restart باید براساس رفتار مورد انتظار برنامه انجام شود.

نکات امنیتی پس از نصب Docker

Docker Socket را عمومی نکنید

فایل Socket داکر معمولاً در مسیر زیر قرار دارد:

/var/run/docker.sock

این Socket را داخل کانتینرهای غیرقابل اعتماد Mount نکنید و Docker API را بدون TLS، احراز هویت و طراحی امنیتی روی شبکه عمومی قرار ندهید.

از Imageهای معتبر استفاده کنید

Image را از ناشر معتبر دریافت کرده و نسخه مشخصی برای محیط عملیاتی انتخاب کنید. استفاده دائمی از Tag عمومی مانند latest می‌تواند باعث دریافت نسخه‌ای متفاوت در استقرار بعدی شود.

کانتینر را Privileged اجرا نکنید

گزینه --privileged دسترسی گسترده‌ای به کانتینر می‌دهد. فقط در صورت ضرورت فنی، مستندسازی ریسک و اعمال کنترل‌های تکمیلی از آن استفاده کنید.

اطلاعات حساس را داخل Image نگذارید

رمز دیتابیس، کلید API و Token نباید داخل Dockerfile، Image یا مخزن عمومی ثبت شوند. اطلاعات حساس را با روش متناسب با معماری پروژه مدیریت کنید.

پورت‌های غیرضروری را منتشر نکنید

کانتینرهای داخلی را در یک Docker Network قرار دهید. فقط Reverse Proxy یا سرویس‌هایی که واقعاً باید از اینترنت قابل دسترس باشند، پورت عمومی دریافت کنند.

سیستم و Docker را به‌روزرسانی کنید

پیش از به‌روزرسانی سرور عملیاتی، تغییرات را در محیط آزمایشی بررسی کنید. همچنین از داده‌های Volume و تنظیمات پروژه بکاپ داشته باشید.

مطالعه بیشتر: چک‌لیست امنیت سرور لینوکس

بکاپ قبل و بعد از نصب Docker

در سرور تازه، معمولاً داده‌ای برای بکاپ وجود ندارد؛ اما در سرور دارای نصب قبلی باید این موارد ذخیره شوند:

  • فایل‌های compose.yaml
  • Dockerfileها
  • فایل‌های تنظیمات برنامه
  • داده‌های Volume
  • خروجی سازگار دیتابیس
  • تنظیمات Reverse Proxy
  • گواهی‌ها و تنظیمات SSL
  • فهرست Imageها و نسخه‌های استفاده‌شده
  • متغیرهای محیطی و Secretها به‌شکل محافظت‌شده

برای مشاهده Volumeها:

docker volume ls

برای مشاهده جزئیات یک Volume:

docker volume inspect VOLUME_NAME

فایل‌های داخل /var/lib/docker را هنگام فعال‌بودن سرویس و بدون شناخت ساختار به‌صورت دستی جابه‌جا یا حذف نکنید. برای دیتابیس از روش رسمی بکاپ همان دیتابیس استفاده کنید.

مطالعه بیشتر: بررسی فضای دیسک لینوکس با df و du

به‌روزرسانی Docker و Docker Compose

ابتدا فهرست بسته‌ها را به‌روزرسانی کنید:

sudo apt update

سپس بسته‌های Docker را ارتقا دهید:

sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

پیش از ارتقا در محیط عملیاتی:

  1. Release Note نسخه را بررسی کنید.
  2. از داده‌های مهم بکاپ بگیرید.
  3. سازگاری Compose و Imageها را آزمایش کنید.
  4. برای توقف احتمالی سرویس برنامه‌ریزی کنید.
  5. پس از ارتقا، وضعیت Docker و کانتینرها را کنترل کنید.

نسخه‌های نصب‌شده را بعد از به‌روزرسانی بررسی کنید:

docker version
docker compose version

رفع خطاهای رایج نصب Docker

خطای Permission Denied

اگر دستور Docker بدون sudo خطای دسترسی نشان می‌دهد، کاربر به Socket دسترسی ندارد. از sudo استفاده کنید یا پس از ارزیابی امنیتی، عضویت گروه Docker را تنظیم کنید.

خطای Cannot Connect to Docker Daemon

ابتدا وضعیت سرویس را بررسی کنید:

sudo systemctl status docker

سپس گزارش‌های بوت جاری را ببینید:

sudo journalctl -u docker.service -b --no-pager

خطا می‌تواند به تنظیمات Daemon، فضای دیسک، شبکه، Containerd یا بسته‌های ناسازگار مربوط باشد.

مطالعه بیشتر: بررسی Logهای لینوکس با Journalctl

دستور docker compose شناخته نمی‌شود

وجود افزونه را بررسی کنید:

dpkg -l | grep docker-compose-plugin

در صورت نصب‌نبودن:

sudo apt update
sudo apt install docker-compose-plugin

سپس:

docker compose version

نصب مستقل و قدیمی docker-compose با Compose Plugin یکسان نیست. برای راهنمای حاضر از نسخه Plugin استفاده شده است.

خطای Repository

محتوای منبع را بررسی کنید:

cat /etc/apt/sources.list.d/docker.sources

کلید نیز باید وجود داشته و خواندنی باشد:

ls -l /etc/apt/keyrings/docker.asc

نسخه Ubuntu را از /etc/os-release بررسی کنید. Codename یک نسخه دیگر را برای دورزدن خطا جایگزین نکنید؛ این کار می‌تواند بسته‌های ناسازگار نصب کند.

کانتینر اجرا می‌شود اما سایت باز نمی‌شود

این موارد را کنترل کنید:

  • کانتینر در وضعیت Running باشد.
  • پورت به‌درستی Publish شده باشد.
  • برنامه داخل کانتینر روی Interface مناسب Listen کند.
  • فایروال شبکه یا ارائه‌دهنده مانع اتصال نباشد.
  • سرویس داخلی خطای راه‌اندازی نداشته باشد.
  • دامنه به IP صحیح اشاره کند.

دستورات مفید:

docker compose ps
docker compose logs --tail=100
sudo ss -lntup

چک‌لیست نهایی نصب Docker

  • نسخه و معماری Ubuntu بررسی شده است.
  • فضای دیسک، RAM و دسترسی sudo کافی است.
  • از داده‌ها و تنظیمات نصب قبلی بکاپ گرفته شده است.
  • بسته‌های ناسازگار فقط پس از بررسی حذف شده‌اند.
  • کلید GPG و Repository رسمی Docker اضافه شده‌اند.
  • Docker Engine، CLI، Containerd، Buildx و Compose Plugin نصب شده‌اند.
  • سرویس Docker در وضعیت Active قرار دارد.
  • کانتینر hello-world با موفقیت اجرا شده است.
  • دستور docker compose version خروجی صحیح دارد.
  • دسترسی گروه Docker با آگاهی از سطح اختیارات تنظیم شده است.
  • پورت‌های منتشرشده و قواعد فایروال بررسی شده‌اند.
  • داده‌های مهم در Volume یا فضای پایدار نگهداری می‌شوند.
  • برای Volumeها و دیتابیس برنامه بکاپ وجود دارد.
  • لاگ، فضای دیسک و وضعیت کانتینرها پایش می‌شوند.
  • روش به‌روزرسانی و بازگشت نسخه مشخص شده است.

جمع‌ بندی

در آموزش نصب Docker و Docker Compose روی Ubuntu، ابتدا پیش‌نیازها و بسته‌های ناسازگار را بررسی کردیم و سپس کلید و Repository رسمی Docker را به APT افزودیم. با نصب بسته‌های Docker CE، CLI، Containerd، Buildx و Compose Plugin، محیط اجرای کانتینر آماده شد.

پس از نصب، وضعیت سرویس با systemctl و عملکرد Docker با Image آزمایشی hello-world بررسی شد. همچنین یک سرویس Nginx را با فایل compose.yaml اجرا کردیم تا عملکرد Docker Compose نیز آزمایش شود.

نصب Docker پایان کار نیست. محدودکردن دسترسی به Docker Socket، کنترل پورت‌ها، بررسی رفتار UFW، نگهداری Volumeها، بکاپ دیتابیس، پایش فضای دیسک و به‌روزرسانی کنترل‌شده برای استفاده عملیاتی ضروری هستند.

اگر برای نصب Docker، تنظیم Docker Compose، ایمن‌سازی کانتینرها یا انتخاب VPS مناسب پروژه به راهنمایی نیاز دارید، می‌توانید با شرکت تجارت الکترونیک نوژن تماس بگیرید و خدمات سرور مجازی، زیرساخت و پشتیبانی فنی را بررسی کنید.

سؤالات متداول

۱. بهترین روش نصب Docker روی Ubuntu چیست؟

برای اغلب سرورها، استفاده از مخزن رسمی APT داکر مناسب است؛ زیرا نصب و به‌روزرسانی بسته‌ها از طریق Package Manager انجام می‌شود. اسکریپت سریع بیشتر برای محیط آزمایشی توصیه می‌شود.

۲. آیا Docker Compose جداگانه نصب می‌شود؟

در روش رسمی، Compose به‌صورت افزونه با بسته docker-compose-plugin نصب می‌شود و فرمان آن docker compose است.

۳. چرا Docker بدون sudo اجرا نمی‌شود؟

Docker Socket به‌صورت پیش‌فرض دسترسی محدودی دارد. می‌توانید از sudo استفاده کنید یا با آگاهی از اختیارات سطح Root، کاربر را به گروه Docker اضافه کنید.

۴. چگونه مطمئن شویم Docker درست نصب شده است؟

وضعیت سرویس را با systemctl status docker بررسی و سپس sudo docker run --rm hello-world را اجرا کنید. فرمان docker compose version نیز باید نسخه Compose را نمایش دهد.

۵. آیا حذف کانتینر اطلاعات را پاک می‌کند؟

داده‌های داخل لایه قابل نوشتن کانتینر با حذف آن از بین می‌روند. اطلاعات مهم باید در Volume، Bind Mount یا فضای ذخیره‌سازی پایدار قرار گیرند.

۶. آیا Docker با UFW سازگار است؟

انتشار پورت کانتینر ممکن است از برخی قواعد UFW عبور کند. پورت‌های Docker و زنجیره‌های فایروال باید جداگانه و با دقت بررسی شوند.

۷. آیا می‌توان Docker را روی هر VPS نصب کرد؟

VPS باید سیستم‌عامل، Kernel، معماری و دسترسی مدیریتی سازگار داشته باشد. منابع CPU، RAM و دیسک نیز باید با تعداد و نوع کانتینرهای پروژه متناسب باشند.

 


آیا این پاسخ به شما کمک کرد؟

  • آموزش نصب Docker و Docker Compose
  • 0
« برگشت