Que efeito tem rc_sys = “docker”?

1

O arquivo oficial Gentoo Dockerfile contém esta linha:

RUN sed -e 's/#rc_sys=""/rc_sys="docker"/g' -i /etc/rc.conf

No momento atual, o init padrão do Gentoo é o OpenRC .

Se eu executar a imagem do docker com CMD /sbin/init , a emissão de comandos do tipo OpenRC dará a resposta

You are attempting to run an openrc service on a system which openrc did not boot.

... e, de fato, strings /sbin/init | grep -q "sysvinit"SYSVINIT

No entanto, também do link acima, o OpenRC é baseado no sysvinit, então isso pode estar correto.

Se eu executar a imagem do docker com CMD /sbin/openrc , a imagem não será iniciada, alegando erros de dependência.

Se eu quiser executar vários processos no OpenRC, devo alterar o /etc/rc.conf de volta para "" (Nothing special)?

Existe algo especial sobre o sistema RC "docker"? Será que, talvez, não presuma nenhum sistema init e, em vez disso, espera apenas um processo em execução?

O que significa um "docker" RC em /etc/rc.conf em termos de qual sistema init é usado?

    
por tudor 04.01.2017 / 04:40

1 resposta

2

Se você observar muitos dos scripts init boot runlevel, como /etc/init.d/hostname , verá um bloco da seguinte forma:

depend() {
    keyword -docker -lxc -prefix -systemd-nspawn
}

Isso indica que o script de inicialização NÃO deve ser usado automaticamente em nenhum desses tipos de sistema (você pode ver a página de manual openrc-run(8) para a explicação completa de keyword ).

Os scripts ainda podem ser iniciados manualmente, mas não serão considerados durante a criação automática de dependências do init. Não me lembro imediatamente do comportamento se o script é explicitamente adicionado a um nível de execução.

    
por 28.03.2017 / 07:27