Gentoo
rc_sys=‘docker’ 有什麼作用?
官方的Gentoo Dockerfile包含這一行:
RUN sed -e 's/#rc_sys=""/rc_sys="docker"/g' -i /etc/rc.conf
截至目前,Gentoo 的預設初始化是 OpenRC。
如果我使用 執行 docker 映像
CMD /sbin/init
,則發出 OpenRC 類型的命令會給出響應You are attempting to run an openrc service on a system which openrc did not boot.
…而且,確實,
strings /sbin/init | grep -q "sysvinit"
給SYSVINIT
但是,同樣從上面的連結來看,OpenRC 是基於 sysvinit 的,所以這可能是正確的。
如果我使用 執行 docker 映像
CMD /sbin/openrc
,則該映像將無法啟動,並聲稱存在依賴錯誤。如果我想在 OpenRC 下執行多個程序,我應該將 /etc/rc.conf 改回“”(沒什麼特別的)嗎?
“docker” RC 系統有什麼特別之處嗎?它是否可能假定沒有初始化系統而只期望一個正在執行的程序?
/etc/rc.conf 中的“docker”RC 對使用的 init 系統意味著什麼?
如果您查看許多
boot
執行級別的 init 腳本,例如/etc/init.d/hostname
,您將看到如下塊:依靠() { 關鍵字 -docker -lxc -prefix -systemd-nspawn }
這表明不應在任何這些系統類型上自動使用 init 腳本(您可以查看手冊頁
openrc-run(8)
以獲取 的完整說明keyword
)。腳本仍然可以手動啟動,但在自動初始化依賴建構期間不會考慮。如果腳本被顯式添加到執行級別,我不記得臨時的行為。