สำหรับจุดประสงค์ของคำตอบนี้สมมติว่าคอนเทนเนอร์ของคุณชื่อ "foo"
ส่วนที่
จากโฮสต์ให้บันทึกสำเนา/var/lib/lxc/foo/config
ไว้ในกรณีที่คำแนะนำของฉันผิดพลาด
คุณจะต้องกำหนดค่าคอนเทนเนอร์ของคุณเพื่อรักษาSYS_MODULE
ความสามารถ
โปรดทราบว่าเช่นการกำหนดค่าให้ภาชนะที่ความสามารถในการใช้เวลามากกว่าเคอร์เนลและจึงโฮสต์
ในการทำเช่นนี้คุณจะต้องเปลี่ยน"lxc.cap.drop"
หรือ"lxc.cap.keep"
กำหนดค่าสาย
หากคุณใช้งานแขก Ubuntu 19.04 ที่สร้างขึ้นด้วย"lxc-create --name foo --template download -- ..."
:
/var/lib/lxc/foo/config
จะมีบรรทัด
lxc.include = /usr/share/lxc/ubuntu.common.conf
/usr/share/lxc/ubuntu.common.conf
จะมีบรรทัด
lxc.include = /usr/share/lxc/config/common.conf
/usr/share/lxc/config/common.conf
จะมีบรรทัดเช่นนี้
lxc.cap.drop = mac_admin mac_override sys_time sys_module sys_rawio
คุณควรคัดลอกบรรทัดสุดท้ายนั้นไปยังจุดสิ้นสุดของ/var/lib/lxc/foo/config
(หรือสถานที่ใด ๆ หลังจากนั้น"include /usr/share/lxc/ubuntu.common.conf"
) แล้วลบออก"sys_module"
จากรายการ
ส่วน B
คุณต้องคัดลอกโมดูลเคอร์เนลของคุณในภาชนะ
หากโฮสต์ของคุณกำลังใช้งานเคอร์เนล Ubuntu คุณอาจทำสิ่งที่ต้องการได้"sudo apt install kernel-image-$(uname -r)"
จากแขก
มิฉะนั้นจากโฮสต์คุณอาจต้องทำสิ่งนี้ (สมมติว่าคอนเทนเนอร์ของคุณชื่อ "foo"):
mkdir -p /var/lib/lxc/foo/rootfs/lib/modules
cp -apr /lib/modules/$(uname -r) /var/lib/lxc/foo/rootfs/lib/modules/
หลังจากที่ปิดตัวลง foo "lxc-start --name foo"
แขกถ้าคุณกำลังทำงานแล้วเริ่มต้นใหม่กับสิ่งที่ต้องการ
คอนเทนเนอร์ LXC ควรสามารถโหลดและยกเลิกการโหลดโมดูลเคอร์เนลได้ในขณะนี้