كيف تنسخ حاوية Docker لـMinIO احتياطيًا (2026)
يحتاج MinIO تفريغًا متسقًا قبل أن يلمس restic. ينفّذ Dockstash الأمر `mc mirror local/<bucket> /backup/<bucket>` داخل الحاوية ويلتقط المخرجات ويخزنها مشفّرة خارجيًا — ولا ينسخ /data حيًا أبدًا، لأن ينسخ mc mirror كل كائن ذرّيًا عبر واجهة S3 حافظًا بيانات وصفية قد يفوّتها نسخ /data الخام أثناء رفعات multipart جارية.
ما يكتشفه Dockstash
| متغيرات البيئة المكتشفة | MINIO_ROOT_USER, MINIO_ROOT_PASSWORD, MINIO_ACCESS_KEY, MINIO_SECRET_KEY |
|---|---|
| المنفذ الافتراضي | 9000 |
| مسارات البيانات الحية (لا تُنسخ حية أبدًا) | /data |
| أمثلة الصور | minio/minio:latest, minio/minio, quay.io/minio/minio |
انسخ MinIO مع Dockstash خطوة بخطوة
أنشئ حساب Dockstash وافتح لوحة التحكم
سجّل مجانًا على app.dockstash.com/register. يسألك معالج الإعداد لمرة واحدة عن خادم التخزين VPS (الجهاز الذي سيحتفظ بالنسخ الاحتياطية المشفّرة) ويولّد كلمة مرور تشفير — احفظها فورًا في مدير كلمات مرور، فهي تُعرض مرة واحدة فقط.
أضف مشروع Docker الذي يشغّل MinIO
في شاشة Projects يكتشف Dockstash تلقائيًا كل مجلد مشروع Compose على الخادم (افتراضيًا تحت /var/www). اختر المشروع الذي يحتوي خدمة MinIO. لم يُنسخ شيء بعد — أنت فقط تخبر Dockstash أين يقيم المشروع.
تحقق من اكتشاف MinIO
افتح المشروع وتبويب Plan. يقرأ Dockstash ملف docker-compose.yml ويتعرف على صورة minio/minio ويضيف طبقة مخزن كائنات مبنية حول mc mirror — مع اسم الحاوية والمتغيرات المكتشفة (MINIO_ROOT_USER وMINIO_ROOT_PASSWORD أو الزوج القديم MINIO_ACCESS_KEY / MINIO_SECRET_KEY). فعّل أو عطّل الملفات والقواعد وإعدادات الوكيل قبل الحفظ.
اختياري: تحقق من قائمة الدلاء يدويًا
إن أردت دليلًا قبل الأتمتة، نفّذ mc ls على الاسم المستعار local داخل الحاوية. سترى كل دلو بحجمه وعدد كائناته — إياها سيَنسخ mc mirror عبر واجهة S3 كائنًا كائنًا، وليس دليل /data الخام أبدًا.
docker exec <minio-container> mc ls localأكّد وجهة التخزين
تُخزَّن النسخ كلقطات restic مشفّرة على خادم التخزين VPS الخاص بك عبر SSH. إن أكملت معالج الإعداد فهي مهيّأة بالفعل؛ ويمكنك تغيير المضيف والمستخدم والمنفذ ومفتاح SSH في أي وقت من Settings → Storage.
اضبط جدول النسخ الاحتياطي
في تبويب Schedule اختر يوميًا أو أسبوعيًا أو cron مخصصًا (يُتحقق أثناء الكتابة). يوميًا في ساعة هادئة هو الافتراضي الصحيح لمخازن الكائنات — المرايا تزايدية والتشغيلات اللاحقة تنسخ المتغير فقط. أضف prune أسبوعيًا مع سياسة الاحتفاظ.
شغّل أول نسخة احتياطية الآن
انقر Backup Now. ينفّذ Dockstash الأمر mc mirror داخل الحاوية لنسخ كل دلو عبر واجهة S3 — ملتقطًا كل كائن ذرّيًا مع بياناته الوصفية — ويدفق الناتج إلى restic. تابع المخرجات في لوحة السجلات.
تأكد من وجود اللقطة
عند انتهاء التشغيل تعرض بطاقة المشروع وقت آخر نسخة وعدد اللقطات وحجم المستودع. افتح شاشة Snapshots وسترى نقطة الاستعادة في الخط الزمني — هذا دليلك على وصول النسخة إلى موقعها الخارجي.
أمر التفريغ
mc mirror local/<bucket> /backup/<bucket>أمر الاستعادة
mc mirror /backup/<bucket> local/<bucket>ينسخ mc mirror كل كائن ذرّيًا عبر واجهة S3 حافظًا بيانات وصفية قد يفوّتها نسخ /data الخام أثناء رفعات multipart جارية.
استعد نسخة MinIO وأثبت أنها تعمل
نسخة MinIO لا تصبح حقيقية إلا بعد استعادتها. استعادات Dockstash لا تكتب فوق الدلاء الحية افتراضيًا — إلى موقع جديد أولًا، فحص الكائنات، ثم ترقية واعية.
اختر نقطة استعادة
افتح Snapshots واختر المشروع وتصفح الخط الزمني. كل صف مرآة كاملة للدلاء على مستوى الواجهة — كل كائن مع بياناته الوصفية ووسومه — مع ملفات المشروع من التشغيل نفسه.
استعد إلى موقع جديد
انقر Restore وأبقِ الوضع الافتراضي «Restore to new location». اكتب اسم المشروع للتأكيد — إجراء متعمّد بتأكيد مكتوب. يهبط التفريغ والملفات في المسار الهدف الذي تختاره دون المساس بالمشروع الحي.
تحقق من الكائنات المستعادة
اعكس الدلو المستعاد إلى نسخة MinIO تجريبية ثم اسرد محتواه بـmc ls. قارن عدد الكائنات والحجم الإجمالي بالدلو الحي وافحص عينات مما يقدمه تطبيقك فعلًا — تنزيل يفتح صحيحًا هو أسرع اختبار.
docker exec <minio-container> mc ls local/<bucket>رقِّ النتيجة عند الاقتناع
بعد التحقق من البيانات المستعادة وجّه تطبيقك إليها (أو أعد الاستعادة بوضع «Overwrite existing» — موافقة صريحة). الأفضل: دع تدريب الاستعادة الأسبوعي ينتج هذا الدليل تلقائيًا كي لا تكون الاستعادة الحقيقية أول بروفة لك.
مطبات يجب تجنبها
- فضّل mc mirror على نسخ دليل /data الخام — يخزن MinIO الكائنات مع بيانات xl.meta الوصفية والنسخ الخام قد يفوّت رفعات multipart جارية.
- اعكس عبر واجهة S3 لتُحفظ البيانات الوصفية والإصدارات والوسوم باتساق.
- للدلاء المفعَّلة الإصدارات انسخ الإصدارات صراحة وإلا التقطت آخر حالة فقط لكل كائن.
مشكلات شائعة في نسخ MinIO
- العرض
- نسخة مستعادة من دليل /data لا تقدم كائنات، أو يسجل MinIO أخطاء xl.meta عند الإقلاع.
- السبب
- أُخذت النسخة بنسخ /data الخام بدل المرآة عبر واجهة S3. يخزن MinIO كل كائن بجوار ملفات بيانات وصفية xl.meta؛ نسخة خام تفقدها أو تمزقها تجعل الكائنات غير قابلة للقراءة.
- العلاج
- انسخ بـmc mirror عبر واجهة S3 — النهج الذي يضبطه Dockstash افتراضيًا. ورثت نسخة خام؟ استعدها إلى MinIO موقوف من الإصدار نفسه وتحقق من كل دلو بـmc ls قبل الثقة بها.
- العرض
- بعض الكائنات المرفوعة حديثًا غائبة عن النسخة.
- السبب
- كانت رفعات multipart جارية وقت المرآة — الرفعات غير المكتملة غير مرئية لسرد S3 حتى وصول الجزء الأخير، والنسخ الخام كان سيلتقطها شظايا عديمة النفع.
- العلاج
- لا عطب: المرآة المجدولة التالية تلتقط الكائنات المكتملة. إن كانت رفعة معينة مهمة فأعد Backup Now بعد اكتمالها، أو جدوِل النسخ خارج نوافذ الرفع الكثيف.
- العرض
- دلو مفعَّل الإصدارات يُستعاد بنسخة واحدة فقط من كل كائن.
- السبب
- ينسخ mc mirror العادي الحالة الراهنة للكائنات — لا تُنقل الإصدارات الأقدم دون نسخ إصدارات صريح.
- العلاج
- إن اعتمدت على إصدارات الدلاء للاستعادة الزمنية فاعكس الإصدارات صراحة (mc mirror مع نسخ الإصدارات)، أو عُدَّ خط لقطات Dockstash الزمني نفسه تاريخ إصداراتك — كل لقطة يومية تحفظ حالة كائنات يومها.
- العرض
- أوامر mc تفشل بـ«Access Denied» أو «invalid credentials».
- السبب
- تغيّرت بيانات الاعتماد في compose (مثل تدوير MINIO_ROOT_USER / MINIO_ROOT_PASSWORD) بينما الاسم المستعار mc في الحاوية يمسك الزوج القديم.
- العلاج
- أعد إنشاء الحاوية ليُبنى الاسم المستعار من البيئة الحالية، أو نفّذ داخل الحاوية mc alias set بالبيانات الجديدة ثم أعد النسخ.
أنجزه بنقرة واحدة مع Dockstash
ينفّذ Dockstash التفريغ أعلاه بالضبط ويسلّمه إلى restic خارجيًا ويختبر الاستعادة بتدريب تلقائيًا — بلا سكربت تصونه.
آخر تحديث: July 2026
الأسئلة الشائعة
أنسخ MinIO بـmc mirror أم بنسخ ملفات؟
بـmc mirror. يقرأ الكائنات عبر واجهة S3 فيُلتقط كل كائن وبياناته ذرّيًا. النسخ الخام لـ/data قد يمسك رفعات multipart جارية أو يفقد تخطيط البيانات الوصفية.
هل يحفظ mc mirror الإصدارات والوسوم؟
يحفظ البيانات الوصفية والوسوم. للدلاء المفعَّلة الإصدارات يلزم عكس الإصدارات صراحة وإلا التُقطت النسخة الحالية فقط من كل كائن.
هل يمكن الاستعادة إلى نسخة MinIO جديدة؟
نعم. وجّه mc إلى النسخة الجديدة وأنشئ الدلو الهدف واعكس دليل النسخة عائدًا. يسلّم Dockstash الكائنات المعكوسة إلى restic بين الخطوتين.
هل نسخ /data مقبول يومًا؟
فقط وMinIO موقوف تمامًا دون كتابات جارية — وحتى حينها يجب حفظ تخطيط البيانات الوصفية كما هو. المرآة على مستوى الواجهة هي النهج الأسلم المدعوم.
كم مرة يجب نسخ MinIO؟
يوميًا هو العملي — mc mirror تزايدي واليوم الهادئ لا يكلف شيئًا تقريبًا. في Free النسخ يدوي Backup Now؛ Pro يضيف جداول حتى الساعي وBusiness أي cron. اقرنه بتدريب استعادة أسبوعي.
أين تعيش النسخ الاحتياطية فعليًا؟
على خادم التخزين VPS الخاص بك، كلقطات restic مشفّرة تُدفع عبر SSH. لا يحتفظ Dockstash ببياناتك أبدًا على سحابة طرف ثالث — أنت توجّهه إلى جهاز تتحكم فيه، والمستودع مشفّر بكلمة مرور لا يملكها سواك.
كيف أعرف أن النسخة قابلة للاستعادة دون استعادة يدوية؟
جدوِل تدريب استعادة. يستعيد Dockstash أحدث لقطة إلى مساحة معزولة ويقارن كل ملف مستعاد بايتًا ببايت بالمصدر — ثم يختم بشارة نجاح/فشل. تدريب أسبوعي يثبت باستمرار أن دلاءك تعود.