$ docker run -it --cap-add SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro dockerimages/docker-systemd
Keluaran:
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
Pembaruan 2021
Banyak tambalan dikirim ke proyek yang berbeda seperti repo upstream buruh pelabuhan oleh REDHAT.To lebih jelas frind David Walsh @ REDHAT saya juga memposting banyak tentang itu.https://developers.redhat.com/blog/author/rhatdan/.
Menjalankan SystemD tanpa hak tambahan membutuhkan
/run sebagai tmpfs./sys/fs/cgroup baca / saja./sys/fs/cgroup/systemd membaca / menulis./etc/machine-id Perlu mengandung Mesin UniqeSIGRTMIN+3 sebagai stopsignal sebagai sigterm tidak akan berfungsi/var/log/journal Jika tidak ada itu akan menulis ke memori
Untuk menjalankan systemd dalam wadah Docker, file host sistem juga harus menjalankan systemd. Ini berarti Anda tidak dapat menggunakan Ubuntu < 16.04 sebagai host.
Saat ini systemd tidak berjalan dengan benar dalam wadah buruh pelabuhan, karena serangkaian alasan, yaitu kurangnya hak istimewa yang benar. Anda dapat membacanya di berbagai masalah github di proyek docker seperti menjalankan systemd di dalam Docker arch container hang atau segfault dan isu-isu terkait mengenai init / proses pemantauan. (Saya ingin menautkan lebih banyak masalah di sini, tetapi saya tidak bisa karena saya tampaknya tidak memiliki reputasi yang cukup).
Seperti yang Anda lihat, ini adalah topik yang saat ini sedang dikerjakan dan beberapa tambalan telah digabungkan untuk meningkatkan perilaku, sehingga kami dapat mengharapkan ini berfungsi segera.
Rupanya beberapa pengembang sudah berhasil membuatnya berjalan di sistem fedora, seperti yang telah mereka dokumentasikan dalam blog mereka.
Pada 2018, ini sekarang bekerja untuk saya: docker run -it -e container=dockernama-gambar-Anda/sbin/init
Ini tidak akan memberi Anda shell, jadi Anda harus terlebih dahulu mengaktifkan beberapa layanan systemd (misalnya sshd) di dalam gambar jika itu belum dilakukan, untuk melakukan sesuatu yang berguna.
Menemukan pertanyaan ini saat mencoba melakukan ini di wadah resmi debian: 8.Bagi orang lain yang mencoba melakukan ini di wadah resmi debian:8 (debian: jessie), jawaban @ Frank-from-DSPEED berfungsi dengan sedikit modifikasi seperti yang dijelaskan di git hub post yang lebih lama:
Docker 1.1 Mempermudah ini karena groups (ro) sudah disediakan dalam wadah - saat ini saya masih memerlukan akses priv sehingga dapat membuat tunggangan PrivateTmp, tetapi sebaliknya, selama Anda menentukan cmd untuk dijalankan sebagai biner systemd - ini berfungsi dengan baik.
Halaman manual ‘systemd’ akan menjadi tempat yang baik untuk memulai. Google juga menghasilkan beberapa artikel tentang menjalankan systemd di bawah docker.