Docker به شما اجازه میدهد پایگاههای داده، برنامههای وب و ابزارها را در کانتینرهای ایزوله اجرا کنید، بنابراین نصب چیزی جدید هرگز بقیهٔ سرور شما را به هم نمیریزد. این راهنما Docker Engine و Docker Compose را روی Ubuntu نصب میکند و اولین سرویس واقعی را اجرا میکند.
1. نصب از مخزن Docker
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
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
نصب را با sudo docker run hello-world بررسی کنید.
2. اجرای Docker بدون sudo
sudo usermod -aG docker $USER
newgrp docker
اعضای گروه docker عملاً توان سطح root روی ماشین دارند، پس فقط کاربرانی را اضافه کنید که به آنها اعتماد دارید.
3. اولین فایل Compose شما
یک پوشه و یک فایل compose.yaml بسازید که ابزار پایش Uptime Kuma را اجرا کند:
mkdir -p ~/kuma && cd ~/kuma
cat > compose.yaml <<'EOF'
services:
kuma:
image: louislam/uptime-kuma:1
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
اتصال به 127.0.0.1 پورت را از اینترنت عمومی دور نگه میدارد. وقتی میخواهید از بیرون به آن دسترسی داشته باشید، یک پروکسی معکوس مانند Nginx یا Caddy جلوی آن بگذارید.
دستورهای روزمره
docker psکانتینرهای در حال اجرا را فهرست میکند.docker compose logs -fلاگها را دنبال میکند.docker compose pull && docker compose up -dبه ایمیجهای جدیدتر بهروزرسانی میکند.docker system pruneایمیجهای بلااستفاده و کانتینرهای متوقفشده را حذف میکند.
یک هشدار امنیتی دربارهٔ فایروالها
Docker قوانین iptables خودش را مینویسد. پورتی که به صورت "8080:80" منتشر شده، حتی اگر UFW بگوید مسدود است، ممکن است از اینترنت در دسترس باشد. فقط آنچه باید عمومی باشد را منتشر کنید، سرویسهای خصوصی را به 127.0.0.1 متصل کنید و از بیرون با یک اسکنر پورت آزمایش کنید.
بعد چه اجرا کنیم
برنامههای خودمیزبان محبوب شامل Nextcloud، Vaultwarden، Gitea، Plausible، n8n و Jellyfin هستند. برای یک نمونهٔ کامل، راهنمای ما دربارهٔ میزبانی شخصی Nextcloud را ببینید.