پرش به محتوا

نصب Docker Engine روی Debian

Docker را از مخزن رسمی خود Docker نصب کنید (نه بسته‌ی قدیمی docker.io)، محل ذخیره‌ی داده و چرخش لاگ را تنظیم کنید.

Debian 13سطح: مقدماتیبرای: Debian 13، Debian 12به‌روزرسانی: ۱۶ آبان ۱۴۰۵

۱. حذف نسخه‌های غیررسمی

bash
for p in docker.io docker-compose podman-docker containerd runc; do sudo apt remove -y $p 2>/dev/null; done

۲. مخزن رسمی

bash
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/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
. /etc/os-release
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $VERSION_CODENAME stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list

۳. نصب

bash
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run --rm hello-world

۴. تنظیمات daemon

لاگ کانتینرها به‌طور پیش‌فرض بدون محدودیت رشد می‌کند و می‌تواند دیسک را پر کند:

bash
sudo nano /etc/docker/daemon.json
json
{
  "log-driver": "local",
  "log-opts": { "max-size": "20m", "max-file": "5" },
  "live-restore": true
}

live-restore باعث می‌شود با ری‌استارت سرویس Docker (مثلاً هنگام به‌روزرسانی)، کانتینرها متوقف نشوند.

bash
sudo systemctl restart docker
docker info | grep -E 'Logging Driver|Live Restore'

۵. فایروال

پورت‌هایی که با -p منتشر می‌شوند، مستقیم در nftables باز می‌شوند و قوانین فایروال شما را دور می‌زنند. سرویس‌های داخلی را فقط روی localhost منتشر کنید: -p 127.0.0.1:8080:80.