อุปกรณ์ลูปจัดทำโดยโมดูลเคอร์เนล ดังนั้นคุณต้องมีสิทธิ์พิเศษในการเข้าถึง นอกจากนี้คุณยังต้องให้พวกเขาสัมผัสกับภาชนะของคุณหรือคุณต้องสร้างไฟล์อุปกรณ์ด้วยตนเอง
คำตอบด่วน
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
มันและทำเช่นนี้กับผู้ใช้รายนี้และผู้ใช้รายนี้