يتيح لك Docker تشغيل مواقع الويب وقواعد البيانات والبوتات ولوحات الإدارة في حاويات معزولة، لكلٍّ منها اعتمادياتها الخاصة، ودون أن تملأ النظام بالفوضى.
التثبيت
يثبّت السكربت الرسمي Docker وإضافة Compose على Ubuntu وDebian:
curl -fsSL https://get.docker.com | sh
تحقّق من أنه يعمل:
docker run --rm hello-world
docker compose version
مثال باستخدام Compose
أنشئ مجلدًا يحتوي على ملف docker-compose.yml، مثلًا لموقع ويب بسيط:
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
docker compose up -d # التشغيل في الخلفية
docker compose logs -f # عرض السجلات
docker compose down # الإيقاف
يجعل restart: unless-stopped الحاوية تعود للعمل وحدها بعد إعادة تشغيل خادم VPS.
انتبه: Docker يتجاوز ufw
المنافذ التي تنشرها باستخدام ports: (أو -p) تُفتح على الإنترنت حتى لو قال ufw إنها مغلقة، لأن Docker يكتب قواعده الخاصة في جدار الحماية. وهذا سبب كثير من قواعد البيانات المكشوفة دون قصد.
إذا كانت الخدمة لا تستخدمها إلا حاويات أخرى أو الخادم نفسه، فانشرها محليًا فقط:
ports:
- "127.0.0.1:3306:3306"
أما بين حاويات ملف docker-compose.yml نفسه، فلا حاجة إلى نشر أي شيء: فهي ترى بعضها باسم الخدمة.
التنظيف
تتراكم الصور (images) القديمة وتملأ القرص. من حين لآخر نفّذ:
docker system prune
يحذف هذا الأمر الحاويات المتوقفة والشبكات غير المستخدمة والصور التي لا تحمل وسمًا، ويطلب منك التأكيد قبل ذلك.