كيف تخبر عامل الميناء بتخزين وتشغيل الحاويات على محرك أقراص خارجي

أنا على التوالي عامل الميناء على أوبونتو لينكس. لدي Dockerfile هذا يجلب الكثير من البيانات من مكان آخر. أنا وضعت Dockerfile على محرك أقراص خارجي بأنني شنت على نظام الملفات المحلي (إكست4). ثم ركضت البناء من داخل نظام ملفات محرك الأقراص الخارجي هذا.

docker build -t mycontainer .

شاهدت استخدام محرك الأقراص كما كانت الحاوية بناء. كان كل استخدام محرك الأقراص على نظام الملفات الجذر بدلا من محرك الأقراص المرفق.

لقد قرأت بعض المقالات حول تغيير جذر/قاعدة عامل الميناء من /var/lib/docker إلى مكان آخر ، ولكن حتى الآن كل ما أحصل عليه هو docker.service: Failed with result 'exit-code'.

حاولت أيضا إضافة -g options في ال /lib/systemd/system/docker.service الملف:

ExecStart=/usr/bin/dockerd -H fd://  # originalExecStart=/usr/bin/dockerd -g /new/path/docker -H fd://  # updated

هذا لم يساعد أيضا.

كيف يمكنني أن أقول عامل الميناء لاستخدام محرك أقراص خارجي?

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

# chown -R root:root /mnt/external-drive/docker-base# chmod 701 /mnt/external-drive/docker-base

ثم أنا خلقت /etc/docker/daemon.json ملف مع هذه المحتويات:

{    "graph": "/mnt/external-drive/docker-base"}

أنا إعادة تشغيل خدمة عامل الميناء ويبدو أن كل شيء على ما يرام. القيام docker build ومحرك الأقراص الخارجي يتلقى جميع المحتويات.