मैं अपने परीक्षण वातावरण में डॉकर के अंदर क्रोमड्राइवर + क्रोम चला रहा हूं ।
नवीनतम कोरओएस अपग्रेड तक सब कुछ ठीक काम कर रहा था ।
ये ऐसे संस्करण हैं जो काम करने लगते हैं:
VERSION=1185.5.0VERSION_ID=1185.5.0BUILD_ID=2016-12-07-0937
और यह एक नया संस्करण है जो क्रोम को कोरडम्प का कारण बनता है:
VERSION=1235.4.0VERSION_ID=1235.4.0BUILD_ID=2017-01-04-0450
परिवर्तनों को देखते हुए, ऐसा लगता है कि डॉकर को 1.11 से अपग्रेड किया गया था । x करने के लिए 1.12.x तोड़ दिया, जो setns()
कंटेनर के अंदर कॉल करें । setns()
नामस्थान बनाने के लिए क्रोम द्वारा उपयोग किया जाता है ।
इस उदाहरण outputs:
jsosic-coreos-test-20161207 ~ # docker --versionDocker version 1.11.2, build bac3bae
इस बॉक्स पर एक कंटेनर के अंदर से:
[root@2939f21ecfaa /]# /opt/google/chrome/google-chrome[57:57:0107/015130:ERROR:browser_main_loop.cc(261)] Gtk: cannot open display:
इस तरह नए संस्करण ने इसे तोड़ दिया:
jsosic-coreos-test-2017-01-04 ~ # docker --versionDocker version 1.12.3, build 34a2ead[root@13ab34c36c82 /]# /opt/google/chrome/chromeFailed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permittedAborted (core dumped)
मुझे जो पता चला है वह यह है कि अगर मैं कंटेनर को या तो शुरू करता हूं --cap-add=SYS_ADMIN
या --privileged
- क्रोम उम्मीद के मुताबिक काम करता है ।
उन दो स्विच में क्या अंतर है? किन क्षमताओं द्वारा सक्षम हैं --privileged
?
और, क्या मैं अनुमति दे सकता हूं setns()
सुरक्षा से समझौता किए बिना कंटेनर के अंदर?