rc_sys="docker" 有什么作用?

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 系统而言意味着什么?

答案1

如果您查看许多boot运行级别初始化脚本,例如/etc/init.d/hostname,您将看到如下所示的块:

依靠() {
    关键字-docker -lxc -prefix -systemd-nspawn
}

这表明 init 脚本不应在任何这些系统类型上自动使用(您可以查看联机帮助页openrc-run(8)以获取完整说明keyword)。

这些脚本仍然可以手动启动,但在自动初始化依赖项构建期间不会被考虑。如果脚本被显式添加到运行级别,我不记得立即的行为。

相关内容