كيفية نقل الملفات من وإلى حاوية دوكر

استخدم أمر Docker docker cpلنسخ الملفات أو المجلدات بين جهازك المحلي وحاوية. يعمل هذا الأمر في كلا الاتجاهين، وينسخ المجلدات بشكل متكرر، ويمكنه استهداف حاوية قيد التشغيل أو متوقفة. لا تحتاج إلى فتح نافذة طرفية داخل الحاوية أو إنشاء ملف مضغوط بصيغة tar للنسخ العادي.

الصيغة الأساسية هي docker cp SOURCE DESTINATION: ضع اسم الحاوية أو مُعرّفها قبل نقطتين رأسيتين لمسار الحاوية: docker cp LOCAL_PATH CONTAINER:CONTAINER_PATHالأمر `docker cp` ينسخ البيانات إلى داخل الحاوية، بينما docker cp CONTAINER:CONTAINER_PATH LOCAL_PATHالأمر `docker cp` ينسخ البيانات منها. يوثّق مرجع Docker الخاص بـ `docker cp` قواعد المسار والدليل.

1. ابحث عن اسم الحاوية أو معرّفها

قم بتشغيل هذا من طرفية حيث يمكن لأوامر Docker الوصول إلى محرك Docker:

docker ps -a

docker psيعرض هذا الأمر قائمة بالحاويات قيد التشغيل؛ -aكما يعرض الحاويات المتوقفة. استخدم القيمة الموجودة في NAMESالعمود أو مُعرّف الحاوية في الأوامر أدناه. webيسهل إعادة استخدام اسم مثل `container_container_ls`؛ بينما يُعدّ المُعرّف مُعرّفًا دقيقًا عند الحاجة إلى تمييز الحاويات. يمكنك التحقق من الحقول المعروضة باستخدام الأمر `docker ps` أو `docker container ls` .

مخرجات الطرفية من الأمر docker ps -a تُظهر حاوية قيد التشغيل باسم web ومعرف الحاوية المختصر الخاص بها.
استخدم اسم الحاوية أو المعرف الذي يظهر بواسطة docker ps -a.

2. انسخ ملفًا من جهاز الكمبيوتر الخاص بك إلى الحاوية

قم بتشغيل الأمر docker cpعلى الجهاز الذي تريد نسخ ملفاته. على سبيل المثال، من مجلد مشروع يحتوي على ملف report.csv، انسخه إلى /tmpداخل الحاوية المسماة web:

docker cp ./report.csv web:/tmp/report.csv

استبدل ./report.csvالمسار المحلي بمسار الملف، webواسم الحاوية أو معرّفها، /tmp/report.csvومسار الوجهة داخل الحاوية. تُفسَّر مسارات الحاويات من الدليل الجذر للحاوية، لذا فإن الشرطة المائلة في البداية اختيارية. إذا كان اسم الوجهة دليلاً موجوداً، فسيضع Docker الملف فيه باستخدام اسم ملف المصدر.

أمر طرفي لنسخ ملف report.csv المحلي إلى حاوية الويب في /tmp/report.csv.
يقوم هذا الأمر بنسخ ملف مضيف واحد إلى الحاوية.

يقوم Docker بنسخ الدلائل بشكل متكرر. إذا كان /etc/app/الدليل موجودًا بالفعل، فسيضع هذا الأمر الدليل configبداخله:

docker cp ./config web:/etc/app/

لنسخ محتويات الملف فقط configإلى الملف /etc/app/، أضف /.في نهاية مسار المصدر:

أمر طرفي لنسخ محتويات دليل التكوين المحلي إلى /etc/app داخل حاوية الويب.
اللاحقة /.تعني نسخ محتويات الدليل، بدلاً من تضمين دليل المصدر.
docker cp ./config/. web:/etc/app/

لا يقوم Docker بإنشاء المجلدات الأصلية المفقودة. أنشئ المجلد الأصلي للوجهة أولاً. لإنشاء مجلد مفقود داخل حاوية قيد التشغيل، شغّل الأمر docker exec web mkdir -p /etc/app، ثم انسخ الملفات. docker execيتطلب الأمر حاوية قيد التشغيل؛ docker cpبينما لا يتطلب الأمر ذلك.

3. انسخ ملفًا من الحاوية إلى جهاز الكمبيوتر الخاص بك

اعكس ترتيب المصدر والوجهة لاسترداد ملف. أنشئ مجلد الوجهة المحلي أولاً، ثم انسخ ملف السجل من الحاوية:

mkdir -p ./backup
docker cp web:/var/log/app.log ./backup/
أمر طرفي لاسترداد ملف app.log من /var/log داخل حاوية الويب إلى دليل النسخ الاحتياطي المحلي.
يجب أن يكون مجلد الوجهة المحلي موجودًا قبل النسخ إليه.

يمكنك استرداد مجلد بنفس الطريقة. أضف /.إلى مسار مصدر الحاوية لنسخ محتوياته مباشرةً إلى مجلد محلي موجود:

docker cp web:/var/log/app/. ./backup/

يمكن لـ Docker نسخ الملفات من حاوية متوقفة، وهو أمر مفيد لجمع السجلات أو التكوين بعد انتهاء العملية.

استخدام Docker Compose

إذا كان مشروعك يستخدم Compose، فاستخدم اسم الخدمة docker compose cpبدلاً من البحث عن مُعرّف الحاوية. على سبيل المثال، انسخ ملفًا محليًا إلى خدمة باسم web:

docker compose cp ./report.csv web:/tmp/report.csv

لنسخ الملفات في الاتجاه المعاكس، اعكس المسارات:

docker compose cp web:/var/log/app.log ./backup/

راجع مرجع docker compose cp الرسمي للاطلاع على خيارات مثل تحديد نسخة طبق الأصل عندما تحتوي الخدمة على حاويات متعددة.

الأذونات والتخزين الدائم

بشكل افتراضي، تكون الملفات المنسوخة إلى حاوية مملوكةً للمستخدم الجذر ومجموعته الأساسية؛ أما الملفات المنسوخة إلى جهازك فتكون مملوكةً للمستخدم الذي يُشغّل Docker. ويتم الحفاظ على الأذونات قدر الإمكان. استخدم هذا الخيار -aللحفاظ على مُعرّف المستخدم (UID) ومُعرّف المجموعة (GID) للمصدر. إذا تعذّر على أحد التطبيقات قراءة ملف، فتحقق من وجهته وملكيته بدلاً من منح الحاوية صلاحيات مميزة.

تُحذف الملفات الموجودة في طبقة الكتابة الخاصة بالحاوية مع الحاوية نفسها. بالنسبة للبيانات التي يجب أن تبقى، استخدم وحدة تخزين Docker أو ربطًا مباشرًا. تُناسب وحدات التخزين بيانات الحاويات الدائمة؛ بينما يسمح الربط المباشر للمضيف والحاوية بالوصول إلى الملفات نفسها. إذا قمت بنسخ البيانات إلى مسار مُغطى بربط مباشر، فإنك تُغير البيانات المربوطة. تحقق من الوجهة أولًا. راجع إرشادات Docker حول وحدات التخزين والربط المباشر .

استكشاف الأخطاء وإصلاحها بسرعة

  • "لا يوجد مثل هذا الحاوية": قم بتشغيل الأمر docker ps -aوتحقق من اسم الحاوية أو معرفها.
  • "لا يوجد ملف أو دليل بهذا الاسم": تحقق من مسار المصدر وتأكد من وجود الدليل الأصل للوجهة. تبدأ مسارات الحاويات من /.
  • تم وضع المجلد في مستوى أعمق مما كان متوقعًا: استخدم اللاحق /.لنسخ محتويات الدليل فقط.
  • تم رفض الإذن: تحقق من أن حسابك لديه صلاحية استخدام Docker وأن مستخدم التطبيق لديه صلاحية قراءة أو كتابة الوجهة. على نظام Linux، استخدم هذا الخيار sudoفقط إذا كانت سياسة الوصول إلى Docker في نظامك تتطلب ذلك.
  • تختفي الملفات بعد التنظيف: احفظ البيانات المهمة في وحدة تخزين أو ربط تحميل، وليس فقط في الطبقة القابلة للكتابة في الحاوية.

اترك تعليقاً

كيفية استعادة الأقسام المفقودة وبيانات القرص الصلب بأمان

كيفية استعادة الأقسام المفقودة وبيانات القرص الصلب بأمان

تعرّف على كيفية استعادة الأقسام والملفات المفقودة باستخدام برنامجي TestDisk و PhotoRec. احمِ محرك الأقراص المصدر، وقم بإجراء مسح ضوئي آمن، واحفظ البيانات المستعادة على قرص آخر.

كيفية مسح رموز QR على سطح مكتب لينكس

كيفية مسح رموز QR على سطح مكتب لينكس

امسح رموز QR على نظام Linux باستخدام CoBang عبر كاميرا الويب أو ملف صورة. راجع خيارات التثبيت وخطوات الإعداد والحلول المتعلقة بالوصول إلى كاميرا Flatpak.

كيفية تغيير إعدادات كاميرا الويب على نظام لينكس باستخدام Cameractrls

كيفية تغيير إعدادات كاميرا الويب على نظام لينكس باستخدام Cameractrls

قم بتغيير إعدادات كاميرا الويب على نظام التشغيل Linux باستخدام Cameractrls: اضبط التعريض واللون وتقليل الوميض وعناصر التحكم الأخرى المدعومة، ثم تحقق من أوضاع الفيديو المتوافقة.

كيفية تثبيت PhpStorm على نظام Linux: Toolbox، Tar.gz، Snap، وAUR

كيفية تثبيت PhpStorm على نظام Linux: Toolbox، Tar.gz، Snap، وAUR

قم بتثبيت PhpStorm على نظام Linux باستخدام JetBrains Toolbox أو ملف tar.gz المستقل، بالإضافة إلى خيارات Snap وArch AUR. يأتي Java مُضمّنًا بالفعل.

كيفية إعداد لوحتين على XFCE 4

كيفية إعداد لوحتين على XFCE 4

قم بإنشاء لوحة XFCE 4 منفصلة لكل شاشة، وقم بتعيين اللوحة الثانية إلى المخرج الصحيح، وقم بتحديد موضعها وحجمها، وأضف المشغلات وعناصر الحالة التي تحتاجها.

كيفية قص صورة على نظام لينكس باستخدام برنامج جيمب

كيفية قص صورة على نظام لينكس باستخدام برنامج جيمب

إزالة خلفية الصورة على نظام لينكس باستخدام برنامج GIMP: تتبع العنصر، وحذف الخلفية المحددة، والحفاظ على الشفافية، وتصدير ملف PNG قابل لإعادة الاستخدام.

كيفية تثبيت برنامج Cisco Packet Tracer على نظام Linux

كيفية تثبيت برنامج Cisco Packet Tracer على نظام Linux

قم بتنزيل Cisco Packet Tracer 9.0.1 لنظام Ubuntu 64 بت، وقم بتثبيت حزمة DEB باستخدام APT، واقبل الترخيص في Terminal، وقم بتسجيل الدخول لبدء المختبر.

كيفية نسخ قرص مضغوط كملف ISO على نظام لينكس

كيفية نسخ قرص مضغوط كملف ISO على نظام لينكس

أنشئ ملف ISO لقرص مضغوط على نظام لينكس باستخدام GNOME Disks أو dd. حدد محرك الأقراص الضوئية، وراقب عملية النسخ، وتحقق من الصورة، واعرف متى يحتاج القرص التالف أو قرص الصوت إلى أداة أخرى.

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل برنامج FlightGear مجاناً من الموقع الرسمي. قارن بين حزم Windows و macOS و Linux، وثبّت ملفات البيانات، وابدأ رحلتك الأولى.

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

يقوم برنامج OKSampler بربط مقاطع MP3 بمفاتيح لوحة المفاتيح، كما يتيح تكرار الصوت. تعرّف على وظائف هذا البرنامج المجاني القديم، وحدود ميزاته القديمة، وما يجب التحقق منه قبل التنزيل.