داکر امروز پیشفرضِ استقرار سرویسها روی سرورهای لینوکسی است. مسئله این نیست که آن را نصب کنید، مسئله این است که درست نصبش کنید؛ یعنی طوری که بعداً نه امنیت سرور را تهدید کند و نه دیسک را پر کند.
نصب موتور داکر
روی توزیعهای مبتنی بر دبیان، مخزن رسمی داکر را اضافه کنید و از بستههای همان مخزن استفاده کنید. بستهی داخل مخازن پیشفرض توزیع معمولاً چند نسخه عقبتر است.
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
docker --version
کاربر غیر روت
افزودن کاربر به گروه docker کار را راحت میکند، اما عملاً به آن کاربر دسترسی همارز روت میدهد. اگر سرور چند کاربر دارد، بهجای این کار از حالت rootless استفاده کنید.
sudo usermod -aG docker
newgrp docker
سه تنظیم که فراموش میشوند
- محدود کردن اندازهی لاگ کانتینرها؛ بدون آن، لاگهای json بهمرور کل دیسک را میخورند.
- تعریف
restart policyبرای سرویسهایی که باید بعد از ریاستارت سرور بالا بیایند. - اجرای دورهای
docker system pruneبرای پاکسازی ایمیجها و لایههای بیاستفاده.
برای محدود کردن لاگ، فایل /etc/docker/daemon.json را بسازید و درایور لاگ را با سقف مشخص تعریف کنید. این یک خط پیکربندی، بیشتر از هر اسکریپت مانیتورینگی جلوی پر شدن دیسک را میگیرد.
جمعبندی
یک نصب درست داکر سه ویژگی دارد: بهروز است، با کاربر محدود کار میکند و لاگ و فضایش کنترلشده است. اگر این سه مورد را از روز اول رعایت کنید، سرورتان ماهها بدون دردسر کار میکند.
برای سرور تککاربره هم rootless را پیشنهاد میکنید یا همان گروه docker کافی است؟
اگر واقعاً تنها کاربر سرور هستید، گروه docker مشکل عملی ایجاد نمیکند. اما بهمحض اینکه کاربر دومی اضافه شود، بهتر است سراغ rootless بروید.
بخش محدود کردن اندازهی لاگ را نمیدانستم. دیسک سرورمان دو بار به همین دلیل پر شده بود!