Gentoo

rc_sys=‘docker’ 有什麼作用?

  • March 28, 2017

官方的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)。

腳本仍然可以手動啟動,但在自動初始化依賴建構期間不會考慮。如果腳本被顯式添加到執行級別,我不記得臨時的行為。

引用自:https://unix.stackexchange.com/questions/334686