Moby: لا يمكن تحميل ملف مضيف باستخدام مسار نسبي

تم إنشاؤها على ٧ يوليو ٢٠١٦  ·  3تعليقات  ·  مصدر: moby/moby

معلومات تقرير الخطأ

ناتج docker version :

Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:20 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:20 2016
 OS/Arch:      linux/amd64

ناتج docker info :

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 21
Server Version: 1.11.1
Storage Driver: overlay
 Backing Filesystem: xfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.64 GiB
Name: centos-dev
ID: ACEV:LLBJ:NOYB:VEHF:V3FO:JY3A:5ETY:ETCU:WM3D:DBGZ:YF25:BUTY
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

خطوات إعادة إظهار المشكلة:

  1. docker run --rm -it -v config.json: /etc/config.json centos: 7 bash
  2. تشغيل عامل الإرساء --rm -it -v ./config.json:/etc/config.json centos: 7 bash
  3. تشغيل عامل الإرساء --rm -it -v /root/config.json:/etc/config.json centos: 7 bash

صِف النتائج التي تلقيتها:

  1. أحصل على مجلد "/etc/config.json" في الحاوية ، وليس ملفًا
  2. عامل إرساء: استجابة خطأ من البرنامج الخفي: create ./config.json: يتضمن "./config.json" أحرفًا غير صالحة لاسم وحدة تخزين محلية ، فقط "[a-zA-Z0-9] [a-zA-Z0-9_. -] ".
  3. مرت ، حصلت على ملف في الحاوية

صِف النتائج التي توقعتها:
كنت أتوقع أن يدعم docker run تحميل ملف محلي باستخدام مسار نسبي.

المشكلة ذات الصلة: https://github.com/docker/docker/issues/22016

versio1.11

التعليق الأكثر فائدة

سأغلق هذا لأنه يعمل على النحو المنشود والموثق ، حتى لو كان مربكًا بعض الشيء. إذا شعرت أنه يجب تحسين الوثائق ، يرجى إرسال تصحيح!

يمكنك عمل -v $PWD/../../path:/location لاستخدام مسار نسبي بشكل غير مباشر.

ال 3 كومينتر

subchen هذا مذكور إلى حد كبير في الوثائق

يجب أن يكون مصير الحاوية دائمًا مسارًا مطلقًا مثل / src / docs. يمكن أن يكون host-src مسارًا مطلقًا أو قيمة اسم . إذا قمت بتوفير مسار مطلق لـ host-dir ، فإن Docker يقوم بربط الوصلات بالمسار الذي تحدده. إذا قمت بتوفير اسم ، يقوم Docker بإنشاء وحدة تخزين مسماة بهذا الاسم.

  1. يرى عامل الميناء ذلك كاسم لوحدة تخزين ، وبالتالي ، قم بإنشاء وحدة تخزين ، وإنشاء مجلد لها بداخله وتركيب وحدة التخزين فيه.
  2. docker _still_ يرى أنه كاسم لوحدة تخزين ولكن / غير مسموح به في اسم المجلد ، وبالتالي يفشل
  3. يعمل كما هو متوقع: ملاك:

السبب في عدم اتخاذ docker cli مسارًا نسبيًا هو أن عميل عامل الإرساء وعفريت عامل الإرساء قد لا يكونان على نفس المضيف. وبالتالي كيف ينبغي معالجة المسار النسبي؟

  • من جانب العميل؟ ولكن بعد ذلك ، قد لا يكون البرنامج الخفي على نفس المضيف ، قد لا يكون لديه الملف في هذا المكان ، وحتى إذا كان يحتوي على ، فهل محتوى الملف هو نفسه؟
  • على جانب الخفي؟ ولكن بالنسبة إلى أي مسار بعد ذلك؟ طريق الشيطان؟

سأغلق هذا لأنه يعمل على النحو المنشود والموثق ، حتى لو كان مربكًا بعض الشيء. إذا شعرت أنه يجب تحسين الوثائق ، يرجى إرسال تصحيح!

يمكنك عمل -v $PWD/../../path:/location لاستخدام مسار نسبي بشكل غير مباشر.

@ vdemeesterjustincormack شكرا لتوضيحك .

-v $PWD/../../path:/location يمكنه حل مشكلتي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات