मैं (डोकर छवि से कुछ वैज्ञानिक सॉफ्टवेयर लपेटकर Mac OS X पर boot2docker और वह सॉफ्टवेयर (https://github.com/voutcn/megahit.git) के प्रयोग पर नामित पाइप उपयोग कर रहा है काम कर रहा हूँ अजगर में के माध्यम से मैक ओएस एक्स फाइल सिस्टम के लिए घुड़सवार कोड, लेकिन यह महत्वपूर्ण नहीं है) एक दूसरे को अलग-अलग हिस्सों (सी में लिखे गए) तारों के लिए। मैं मेजबान मैक ओएस एक्स मशीन से अस्थायी फ़ोल्डर माउंट डोकर कंटेनर में खरोंच क्षेत्र प्रदान करने के लिए (क्योंकि सॉफ्टवेयर के अस्थायी उत्पादन विशाल हो सकता है) कुछ इस तरह के साथ:नाम पाइप boot2docker
docker run -v /external/folder:/tmp/scratch <image> <args>
यह मेरे कंटेनर के अंदर इस पर्वत लाइन देता है:
none on /tmp/scratch type vboxsf (rw,nodev,relatime)
और पाइप निर्माण नामक इस घुड़सवार फ़ोल्डर के अंदर कंटेनर के अंदर चलने पर विफल रहता है। यह अजगर, सी या किसी विशेष भाषा से भी संबंधित नहीं है। मैं एक त्रुटि के साथ इस फोल्डर में linux कमांड mkfifo pipe1
साथ की जाँच की डबल:
mkfifo: cannot create fifo 'pipe1': Operation not permitted
यह अच्छी तरह से किसी भी आंतरिक नहीं घुड़सवार फ़ोल्डर के लिए कंटेनर के अंदर हालांकि काम करता है। ऐसा क्यों होता है और इसे कैसे ठीक किया जा सकता है?
पीएस: समस्या है कि मैं आसानी से समस्या को पुन: उत्पन्न करने के लिए करता हूं।
1) मैक ओएस एक्स boot2docker साथ
2) Dockerfile है:
FROM ubuntu:14.04
#WORKDIR /tmp <- this one would work
WORKDIR /tmp/scratch
ENTRYPOINT [ "mkfifo" ]
CMD [ "pipe1" ]
3) छवि निर्माण:
docker build --rm -t mine/namedpipes:latest .
4) चल रहा है (बाहरी मेजबान फ़ोल्डर में किया जा रहा है होना करने के लिए घुड़सवार):
docker run -v $(pwd):/tmp/scratch mine/namedpipes:latest