Docker یک اپ و هر چیزی که نیاز دارد را در یک کانتینر بستهبندی میکند که همهجا یکسان اجرا میشود — تمیزترین راه برای self-host کردن سرویسها روی یک VPS. تنها نکته روی Ubuntu و Debian این است که نسخه موجود در مخزن خود توزیع اغلب قدیمی است و بدون پلاگین مدرن Compose عرضه میشود. بهجای آن از مخزن رسمی Docker نصب کنید. کل فرایند اینجاست.
۱. مخزن رسمی Docker را راهاندازی کنید (Ubuntu)
sudo apt update
sudo apt install -y 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
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
۲. Docker Engine و Compose را نصب کنید
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
۳. تأیید کنید که در حال اجراست و در بوت فعال است
sudo systemctl enable --now docker
sudo docker run --rm hello-world
کانتینر hello-world دانلود میشود، یک پیام موفقیت چاپ میکند و خارج میشود — اثباتی که موتور کار میکند.
۴. (اختیاری) Docker را بدون sudo اجرا کنید
sudo usermod -aG docker $USER
# برای اعمال شدن گروه، خارج و دوباره وارد شوید
این کار را فقط برای کاربری که به او اعتماد دارید انجام دهید — دسترسی گروه docker عملاً معادل root روی میزبان است.
یک کانتینر واقعی سریع
docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# به http://YOUR.SERVER.IP:8080 سر بزنید
--restart unless-stopped همان چیزی است که کانتینر را پس از ریبوت بازمیگرداند.
هشدارهای صادقانه
- برای یک نسخه بهروز از مخزن رسمی استفاده کنید؛ بسته
docker.ioتوزیع عقب میماند و فاقد پلاگین Compose است. - فقط پورتهایی که منتشر میکنید را باز کنید. یک
-p 8080:80در کانتینر، پورت ۸۰۸۰ را در معرض دید قرار میدهد — Docker را با یک فایروال UFW جفت کنید. - سرور را متناسب با کانتینرها اندازه کنید، نه با خود Docker که سبک است.
گامهای بعدی
با نصب Docker میتوانید تقریباً هر چیزی را self-host کنید. self-host کردن چند سرویس پشت یک IP، یا ساختهای مشخص Docker مانند یک سرور دسکتاپ راهدور RustDesk و پایش Uptime Kuma را ببینید. برای قرار دادن یک دامنه و HTTPS جلوی آن، چگونه یک reverse proxy با nginx راه بیندازیم را ببینید.
نظرات
هنوز نظری نیست. اولین نفر باشید.