लूप डिवाइस एक कर्नेल मॉड्यूल द्वारा प्रदान किए जाते हैं। इसलिए, आपको उन्हें एक्सेस करने के लिए विशेष विशेषाधिकार की आवश्यकता होती है। आपको उन्हें अपने कंटेनर में उजागर करने की भी आवश्यकता है, या आपको डिवाइस फ़ाइलों को मैन्युअल रूप से बनाने की आवश्यकता है।
जल्दी जवाब
docker run --privileged=true ...
एक विकल्प
sudo losetup /dev/loop0 test.img
mount /dev/loop0 /mnt
docker run -v /mnt:/mnt ...
यह लगभग काम करता है
docker run --device=/dev/loop-control:/dev/loop-control --device=/dev/loop0:/dev/loop0 --cap-add SYS_ADMIN ...
हालाँकि मुझे यह त्रुटि मिली:
root@5c033d5f8625:/# sudo mount /dev/loop0 /mnt
mount: block device /dev/loop0 is write-protected, mounting read-only
mount: cannot mount block device /dev/loop0 read-only
अधिक जानकारी के लिए इस लिंक को देखें ।
Systemd-nspawn मैन पेज पर एक नोट:
systemd-nspawn केवल पढ़ने के लिए कंटेनर में विभिन्न कर्नेल इंटरफेस तक पहुंच को सीमित करता है, जैसे कि / sys, / proc / sys या / sys / fs / selinux। कंटेनर के भीतर से नेटवर्क इंटरफेस और सिस्टम क्लॉक को नहीं बदला जा सकता है। डिवाइस नोड नहीं बनाए जा सकते हैं। होस्ट सिस्टम को रिबूट नहीं किया जा सकता है और कर्नेल मॉड्यूल कंटेनर के भीतर से लोड नहीं किया जा सकता है।
--capability=CAP_MKNOD
अभी भी काम करता है? मेरे लिए इसका कोई प्रभाव नहीं है, मुझेOperation not permitted
इसके साथ भी मिलता है, और इसलिए यह उपयोगकर्ता और इस उपयोगकर्ता को करते हैं ।