أنا باستخدام عامل الميناء لنشر بعض الخدمات على خادم سينتوس 6.4 ، وأنا أحاول معرفة كيفية النسخ الاحتياطي للبيانات بشكل صحيح أنها تولد.
على سبيل المثال ، إحدى الخدمات هي تطبيق ويب حيث يمكن للمستخدمين تحميل الملفات. لهذه الحاوية ، لدي /files
حجم الذي أريد أن النسخ الاحتياطي. يتصاعد المضيف يبدو أنها عبس إلى حد ما على, لأن هذا جبل هو بأي حال من الأحوال المحمولة &[مدش] ; كما قال في هذا بلوق وظيفة و ال وثائق عامل الميناء للمجلدات.
وأنا أعلم من نفس بلوق وظيفة أنني لا الحاجة مضيف جبل للوصول إلى الملفات في وحدة تخزين ، يمكنني استخدام docker inspect
لمعرفة أين هي الملفات.
ولكن هنا مشكلتي: كنت أفكر في النسخ الاحتياطي فقط دوكيرفيلز اللازمة لبناء الحاويات والأحجام المرتبطة بها. في حال المحتمل أن لدي لاستعادة كل شيء من النسخة الاحتياطية, كيف أذهب حول معرفة أي دليل حجم يتوافق مع أي حاوية? تؤدي إعادة بناء الحاوية إلى تغيير المعرف ومسار مستوى الصوت ، لذلك سأحتاج إلى بعض المعلومات الإضافية لمطابقتها. ماذا, إذا حدث شيء, يجب أن النسخ الاحتياطي لتكون قادرة على استعادة الواقع كل شيء?
أنت على حق. نظرا لأنه يمكن أن يكون لديك حاويات متعددة بأحجام بمفردها، فأنت بحاجة إلى تتبع الحجم الذي يتوافق مع الحاوية.تعتمد كيفية القيام بذلك على الإعداد الخاص بك: أستخدم بيانات الاسم لحاوية البيانات ، لذلك من الواضح أن الحاوية التي تنتمي إليها الصورة. بهذه الطريقة يمكن نسخها احتياطيا مثل هذا:
VOLUME=`docker inspect $NAME-data | jq '.[0].Volumes["/path/in/container"]'`tar -C $VOLUME . -czvf $NAME.tar.gz
الآن تحتاج فقط إلى إعادة بناء صورتك وإعادة إنشاء حاوية البيانات الخاصة بك:
cat $NAME.tar.gz | docker run -name $NAME-data -v /path/in/container \ -i busybox tar -C /path/int/container -xzf -
لذلك هذا يعني أنك بحاجة إلى النسخ الاحتياطي:
- دوكيرفيل
- الحجم
- مسار الحجم في الحاوية
- اسم الحاوية التي ينتمي إليها الحجم
تحديث: في هذه الأثناء أنا خلقت أداة للحاويات النسخ الاحتياطي وحجمها (ق) (حاوية (ق)): https://github.com/discordianfish/docker-backup وصورة احتياطية يمكنها إنشاء نسخ احتياطية ودفعها إلى 3: https://github.com/discordianfish/docker-lloyd
في أحدث عامل ميناء (تم اختباره في 1.9.1, build 9894698
) يمكنك استخدام cp
القيادة.
في ما يلي مثال على كيفية نسخ دليل من الحاوية إلى المضيف:
docker cp wordpress:/var/www/html backups/wordpress.`date +"%Y%m%d"`/
هنا مثال على كيفية نسخ دليل من الحاوية إلى tar
الملف:
docker cp wordpress:/var/www/html - > backups/wordpress.`date +"%Y%m%d"`.tar
أخيرا وليس آخرا مثال على كيفية نسخ دليل من الحاوية إلى tar.gz
الملف:
docker cp wordpress:/var/www/html - | gzip > backups/wordpress.`date +"%Y%m%d"`.tar.gz