لماذا عامل الميناء آلة بيانات واضحة على إعادة تشغيل?

أنا باستخدام أدوات عامل الميناء على أوسك.

لقد قمت بإنشاء حاوية حجم بيانات لتخزين البيانات المستمرة: https://docs.docker.com/userguide/dockervolumes/#creating-and-mounting-a-data-volume-container.

راجعت أن هذه البيانات يتم تخزينها بالفعل على بوت2دوكر فم (التي أنشأتها عامل الميناء آلة) وليس على الحاوية ، بحيث تستمر.ومع ذلك "عامل الميناء-إعادة تشغيل الجهاز" مسح هذه البيانات المخصصة على فم.

لا يمكنني العثور على وثائق حول ما يحدث. لقد وجدت مشاركة منتدى واحدة تشير إلى أنه سيتم الحفاظ على البيانات في /فار/ليب/دوكر ، ولكن لم أتمكن من العثور على أي مستندات رسمية تفيد بذلك ويبدو أيضا غريبا بالنظر إلى أن دليل التخزين المستمر أعلاه لا يستخدم هذا المسار أو حتى يذكر أنه سيتم حذف بياناتك.

هل هذا متوقع وإذا كان الأمر كذلك فهل هناك أي وثائق رسمية على المسار الصحيح لتخزين البيانات المستمرة?


تحرير: إضافة مثال على فشل سيناريو

$ docker-machine ssh altdocker@alt:~$ docker run -v /data:/var/lib/mysql --name mydata busybox sh -c "echo 'hello' > /var/lib/mysql/hello"docker@alt:~$ docker run --rm --volumes-from mydata busybox sh -c "cat /var/lib/mysql/hello"hellodocker@alt:~$ exit$ docker-machine restart altStarting VM...$ docker-machine ssh altdocker@alt:~$ docker run --rm --volumes-from mydata busybox sh -c "cat /var/lib/mysql/hello"cat: can't open '/var/lib/mysql/hello': No such file or directory

هذا بالتأكيد يجب أن يعمل:

$ docker-machine ssh defaultdocker@default:~$ docker run -v /data --name mydata busybox truedocker@default:~$ docker run --volumes-from mydata busybox sh -c "echo hello >/data/hello"docker@default:~$ docker run --volumes-from mydata busybox cat /data/hellohellodocker@default:~$ exit$ docker-machine restart defaultStarting VM...$ docker-machine ssh defaultdocker@default:~$ docker run --volumes-from mydata busybox cat /data/hellohello

هل يمكنك توضيح المزيد حول خطوات إعادة إنتاج مشكلتك?

التمهيد 2 ديكر لديه نظام الملفات للقراءة فقط (سوف تحصل على محو على إعادة التشغيل) باستثناء:

  1. الحاويات وبياناتها (وحدات التخزين) - هذا ما تقرأ عنه /var/lib/docker
  2. صور عامل الميناء
  3. تكوين عامل الميناء (على سبيل المثال. /var/lib/boot2docker/profile حيث يمكن أنب الأعلام الخفي)

أنا لا تستخدم بوت2دوكر ، ولكن إذا تم مسح / البيانات على إعادة التشغيل، وهذا هو المكان الذي يتم تخزين حجم الخاص بك (docker run -v /data:/var/lib/mysql) ، لذلك سوف تضيع.

ما تفعلونه هو أيضا الجمع بين اثنين من أنماط مختلفة للتعامل مع استمرار حجم. من أجل الحصول على الثبات ، يمكن للحاويات تحميل وحدات التخزين من موقع محدد على النظام المضيف (الذي يفترض أنه ثابت) ، أو يمكن ربطها بحاوية بيانات ، وتركيبها مع --volumes-from. يبدو أن نهج نظام الملفات المضيف غير مناسب ل بوت2دوكر ، ويجب عليك استخدام نمط حجم البيانات (فقط).

من المفترض أن تقوم بإنشاء حاوية البيانات الخاصة بك باستخدام -v /var/lib/mysql، بدلا من -v /data:/var/lib/mysql.

لاحظ أنني أستخدم عامل ميناء لماك بيتا الذي يستخدم زيف فم.

سوف تستمر محتويات /فار/ليب/بوت 2 دوكر بين الجهاز restarts.So إذا كنت تريد بعض الملفات لتكون متاحة على فم الخاص بك وضعها في هذا الدليل.

إذا كنت تريد أن يكون الوصول إليها في موقع مختلف لتشغيل حاويات عامل الميناء ثم يمكنك إضافة ما يلي إلى / فار/ليب / بوت2دوكر / الملف الشخصي:

mkdir -p /desired/pathln -s /var/lib/boot2docker/your.file /desire/path/your.file

إذا كنت ترغب في إضافة تكوين آخر إلى ملفات النظام التي سوف تستمر بين إعادة تشغيل فم مثل القيم الإضافية في ملف المضيفين الخاص بك ثم يمكنك إضافة أمر مثل واحد أدناه إلى / فار/ليب / بوت2دوكر / الملف الشخصي:

echo '127.0.0.1 your.domain.com' >> /etc/hosts

نأمل أن يساعد