আমি আমার পরীক্ষার পরিবেশে ডকারের ভিতরে ক্রোমড্রাইভার + ক্রোম চালাচ্ছি।
সর্বশেষ কোরিস আপগ্রেড হওয়া পর্যন্ত সবকিছু ঠিকঠাক কাজ করছিল।
এই সংস্করণগুলি যে কাজ করে বলে মনে হচ্ছে:
VERSION=1185.5.0
VERSION_ID=1185.5.0
BUILD_ID=2016-12-07-0937
এবং এটি একটি নতুন সংস্করণ যা ক্রোমকে করপালায় পরিণত করে:
VERSION=1235.4.0
VERSION_ID=1235.4.0
BUILD_ID=2017-01-04-0450
পরিবর্তনের দিকে তাকালে মনে হয় ডকারটি 1.11.x থেকে 1.12.x এ আপগ্রেড করা হয়েছিল, যা ধারকটির setns()
ভিতরে কল ভেঙেছিল । setns()
একটি নেমস্পেস তৈরি করার জন্য ক্রোম ব্যবহার করে।
এটি উদাহরণস্বরূপ:
jsosic-coreos-test-20161207 ~ # docker --version
Docker 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 --version
Docker version 1.12.3, build 34a2ead
[root@13ab34c36c82 /]# /opt/google/chrome/chrome
Failed to move to new namespace: PID namespaces supported,
Network namespace supported,
but failed: errno = Operation not permitted
Aborted (core dumped)
আমি যা জানতে পেরেছি তা হ'ল আমি যদি কন্টেনারটি দুটি দিয়ে শুরু করি --cap-add=SYS_ADMIN
বা --privileged
- ক্রোম প্রত্যাশা অনুযায়ী কাজ করে।
এই দুটি সুইচের মধ্যে পার্থক্য কী? কি ক্ষমতা দ্বারা সক্ষম করা হয় --privileged
?
এবং, আমি setns()
সুরক্ষার সাথে কোনও আপস না করে পাত্রে ভিতরে প্রবেশ করতে পারি ?