لقد جربت صورة عامل ميناء باستخدام سطر الأوامر عامل ميناء دون تحديد أسماء وحدات التخزين. الآن وجدت أنني أريد الاستمرار في استخدام هذه الحاوية / الصورة ولكن عن طريق تحديد الحاوية في إنشاء عامل الميناء.
ما هو أفضل الممارسات للحفاظ على البيانات من وحدات التخزين المجهولة/غير المسماة واستخدامها في الحاوية الجديدة التي تم إنشاؤها بواسطة عامل الميناء يؤلف?
هل يمكنني بطريقة ما تحويل المجهول إلى مجلدات مسماة?
أو ينبغي إنشاء حاوية جديدة مع عامل الميناء يؤلف مع وحدات التخزين المسماة ونسخ البيانات?
هذه الطريقة لها فائدة استخدام واجهة برمجة تطبيقات عامل الميناء. ويستخدم صورة لينكس خفيفة الوزن تسمى alpine وقذيفة الافتراضية, ash لتشغيل نسخة الملف, cp -av من المجلد القديم إلى المجلد المسمى حديثا.
في وقت كتابة هذا التقرير ، كان الخيار الوحيد هو نسخ البيانات. قد تختلف التفاصيل اعتمادا على الإعداد الخاص بك. القائمة العامة للخطوات التي يتعين القيام بها هي كما يلي:
قم بإيقاف الحاوية المصدر وإزالتها للسماح بإنشاء وحدة التخزين الجديدة في الخطوة 3.
docker stop NAMEdocker rm NAME# ordocker-compose stop SERVICEdocker-compose rm SERVICE
في بعض الحالات ، قد تتمكن من تأجيل إزالة حاوية المصدر ، على سبيل المثال عند التبديل من docker-compose حجم مجهول ل docker-compose حجم اسمه. في هذه الحالة up من شأنه أن يخلق وحدة التخزين الجديدة. ويمكنك المضي قدما في نسخ البيانات. ولكن حتى في هذه الحالة ، ينصح بإيقاف الحاوية لتجنب تغيير البيانات أثناء نسخها. وكنت قد حصلت على إزالة الحاوية المصدر ل docker-compose للتبديل إلى وحدة التخزين الجديدة (انتبه إلى التحذيرات).
في بعض الحالات ، لا تكون هناك حاجة إليها حقا ، على سبيل المثال عند التبديل من الحاويات المستقلة إلى docker-compose.
التغيير docker-compose.yml إذا كان ذلك ممكنا.
ابدأ الحاوية الجديدة لوحدة التخزين الجديدة المراد إنشاؤها.
حاويات مستقلة:
docker run ...# ordocker-compose up -d
أوقف الحاوية الجديدة لتجنب تغيير البيانات.
docker stop ...# ordocker-compose stop
في حالة الترحيل إلى حاوية قائمة بذاتها ذات وحدة تخزين مسماة ، يمكنك فقط إنشاء وحدة التخزين بدلا من بدء/إيقاف الحاوية.
انسخ البيانات.
docker run --rm -v "SRC_VOLUME:/from" -v "DST_VOLUME:/to" \ bash -c ' shopt -s dotglob # rm -r /to/* # e.g. pg might have populated the new volume cp -r /from/* /to '
حيث سرك _ حجم ، دست _ حجم - اسم وحدة التخزين ، معرف ، أو المسار المطلق إلى دليل على المضيف.