(CATATAN:tidak jelas dalam pertanyaan bagaimana penanya memasuki wadah buruh pelabuhan. Saya berasumsi docker exec -it CONTAINER bash
digunakan.)
Saya mengalami masalah ini saat menggunakan gambar buruh pelabuhan berdasarkan centos:7
dengan versi buruh pelabuhan 1.9.0
dan untuk mengatasinya, saya hanya menjalankan:
docker exec --privileged -it CONTAINER bash
Perhatikan penyertaan --privileged
.
Pemahaman naif saya tentang alasan mengapa hal ini diperlukan:tampaknya buruh pelabuhan berusaha agar wadah lebih "aman", seperti yang didokumentasikan di sini.
Hah, plotnya mengental. Jika seseorang memiliki jawaban yang lebih baik, silakan tulis dan saya akan menerimanya, jika dapat diterima. Tapi di sini alasan yang jelas. Betapa lalainya saya mengabaikan file log di host :
Jun 12 01:29:46 hostmachine kernel: [140235.718807] audit_printk_skb: 183 callbacks suppressed
Jun 12 01:29:46 hostmachine kernel: [140235.718810] type=1400 audit(1402536586.521:477): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="trace" denied_mask="trace" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.718860] type=1400 audit(1402536586.521:478): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.718886] type=1400 audit(1402536586.521:479): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.718899] type=1400 audit(1402536586.521:480): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.718921] type=1400 audit(1402536586.521:481): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.718954] type=1400 audit(1402536586.521:482): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.719001] type=1400 audit(1402536586.521:483): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.719043] type=1400 audit(1402536586.521:484): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.719086] type=1400 audit(1402536586.521:485): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jun 12 01:29:46 hostmachine kernel: [140235.719126] type=1400 audit(1402536586.521:486): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=3782 comm="lsof" requested_mask="read" denied_mask="read" peer="docker-default"
Jadi apparmor tampaknya menjadi pelakunya, meskipun saya harus memikirkan cara meyakinkannya untuk mengizinkan ini tanpa mengorbankan keamanan host/wadah atau untuk melihat apakah itu mungkin tanpa mengorbankan keamanan.
Kemungkinan lain, kali ini dengan pengaturan keamanan yang lebih halus:berikan hak istimewa SYS_PTRACE ke wadah buruh pelabuhan:
docker run --cap-add=SYS_PTRACE ...