
آموزش نصب 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: موتور Dockerdocker-ce-cli: ابزار خط فرمان Dockercontainerd.io: Runtime موردنیاز کانتینرهاdocker-buildx-plugin: افزونه Buildxdocker-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
پیش از ارتقا در محیط عملیاتی:
- Release Note نسخه را بررسی کنید.
- از دادههای مهم بکاپ بگیرید.
- سازگاری Compose و Imageها را آزمایش کنید.
- برای توقف احتمالی سرویس برنامهریزی کنید.
- پس از ارتقا، وضعیت 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 و دیسک نیز باید با تعداد و نوع کانتینرهای پروژه متناسب باشند.