$ docker run -it --cap-add SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro dockerimages/docker-systemd
आउटपुट:
systemd 218 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)Detected virtualization 'docker'.Detected architecture 'x86-64'.Welcome to Ubuntu Vivid Vervet (development branch)!Set hostname to <502ec40509a5>.[ OK ] Created slice Root Slice.[ OK ] Created slice System Slice. Starting Emergency Shell...[ OK ] Started Emergency Shell.Startup finished in 5ms.Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D totry again to boot into default mode.root@502ec40509a5:~# exit
अपडेट 2021
डॉकर अपस्ट्रीम रेपो जैसी विभिन्न परियोजनाओं के लिए बहुत सारे पैच प्रस्तुत किए गए REDHAT.To अधिक स्पष्ट रहें मेरे फ्रिंड डेविड वाल्श @ रेडहैट ने भी इसके बारे में बहुत कुछ पोस्ट किया । https://developers.redhat.com/blog/author/rhatdan/.
अतिरिक्त विशेषाधिकारों के बिना सिस्टमड चलाना आवश्यक है
/run के रूप में एक tmpfs पर./sys/fs/cgroup पढ़ें / केवल./sys/fs/cgroup/systemd पढ़ें / लिखें।/etc/machine-id की जरूरत है शामिल करने के लिए एक Uniqe MachineIDSIGRTMIN+3 स्टॉपसिग्नल के रूप में सिग्टर्म काम नहीं करेगा/var/log/journal यदि यह मौजूद नहीं है तो यह स्मृति को लिख देगा
डॉकर कंटेनर में सिस्टमड चलाने के लिए, मेजबान प्रणाली भी चलाने systemd. इसका मतलब है कि आप होस्ट के रूप में उबंटू और लेफ्टिनेंट; 16.04 का उपयोग नहीं कर सकते ।
वर्तमान में सिस्टमड एक डॉकर कंटेनर के भीतर सही ढंग से नहीं चलता है, कारणों के एक पूरे सेट के कारण, यानी सही विशेषाधिकारों की कमी । आप उस पर डॉकर प्रोजेक्ट पर विभिन्न प्रकार के गिटहब मुद्दों को पढ़ सकते हैं जैसे चल systemd के अंदर डोकर आर्क कंटेनर लटकी हुई है या segfaults और इनिट/प्रक्रिया निगरानी के संबंध में संबंधित मुद्दे । (मैं यहां और मुद्दों को जोड़ना चाहूंगा, लेकिन मैं ऐसा नहीं कर सकता क्योंकि मेरे पास स्पष्ट रूप से पर्याप्त प्रतिष्ठा नहीं है) ।
जैसा कि आप देख सकते हैं, यह एक ऐसा विषय है जिस पर वर्तमान में काम किया जा रहा है और व्यवहार में सुधार के लिए कुछ पैच पहले ही विलय कर दिए गए हैं, ताकि हम उम्मीद कर सकें कि यह बहुत जल्द काम करेगा ।
जाहिरा तौर पर कुछ डेवलपर्स पहले से ही इसे फेडोरा सिस्टम पर चलाने में कामयाब रहे, जैसा कि उन्होंने दस्तावेज किया है उनके ब्लॉग में.
2018 तक, यह अब मेरे लिए काम करता है: docker run -it -e container=dockerआपका-छवि-नाम/sbin/init
यह आपको एक शेल नहीं देगा, हालांकि, आपको पहले कुछ सिस्टमड सेवा (जैसे एसएसएचडी) को छवि के अंदर सक्षम करना होगा यदि वह पहले से ही नहीं किया गया है, तो कुछ भी उपयोगी करने के लिए ।
डेबियन में ऐसा करने का प्रयास करते समय यह प्रश्न मिला:8 आधिकारिक कंटेनर । आधिकारिक डेबियन पर ऐसा करने की कोशिश करने वाले किसी और के लिए:8 (डेबियन:जेसी) कंटेनर, @फ्रैंक-से-डीएसपीईडी का जवाब एक मामूली संशोधन के साथ काम करता है जैसा कि वर्णित है एक git हब पोस्ट:
डोकर 1.1 बनाता है यह आसान के रूप में समूहों (ro) पहले से ही प्रदान की कंटेनर में - मैं अभी भी वर्तमान की जरूरत है priv का उपयोग कर सकते हैं तो यह बनाने PrivateTmp mounts के हैं, लेकिन अन्यथा, के रूप में लंबे समय के रूप में आप निर्दिष्ट करें अध्यक्ष तथा प्रबंध निदेशक को चलाने के लिए के रूप में systemd बाइनरी - यह काम करता है अच्छी तरह से.