Docker容器啓用systemctl

在docker ubuntu18.04的image中安裝jenkins並啓動之後發現沒有反應。使用service命令也看不出來什麼有用的信息,於是想到用systemctl啓動,這樣可以使用journalctl -xe查看具體的出錯信息。但是運行之後說沒有systemctl這個命令,首先進行安裝apt install systemd。systemd是最近流行的linux啓動服務管理工具,基本上替換了之前的init和chkconfig以及service命令。PS:systemd可以並行處理所有服務,加速開機流程,而舊的init啓動腳本是串行啓動的。
這次運行systemctl命令之後出現錯誤:System has not been booted with systemd as init system (PID 1). Can’t operate.這是由於默認的Docker權限措施禁止了該項操作,可參考Seccomp security profiles for Docker
最終解決方案:

 docker run -it --cap-add SYS_ADMIN --security-opt=seccomp:unconfined -v /sys/fs/cgroup:/sys/fs/cgroup:ro -d -p 8080:8080 --name jenkins_server ubuntu:sdkman.jenkins.systemd /sbin/init

參考文獻:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章