Actions
DockerInit » History » Revision 2
« Previous |
Revision 2/10
(diff)
| Next »
cryptogopher, 2022-04-28 21:36
Container init process¶
To enable running multiple processes, containers require process/service management. This is normally provided by some kind of init task (e.g. provided by sysvinit).
There are Docker-compatible replacements for full-fledged @init@s. Unfortunately they require either custom init scripts or service configurations. The process of migration from system provided OpenRC init scripts is time consuming and error prone.
Usage of system's defaultsysvinit is hampered by following shortcomings:
- it mostly does not respond to Unix signals, which are used by Docker to manage containers (most importantly: signal termination),
- it does not stop properly on container stop. Attempt to stop container with
initas PID 1 ends with error code 137:CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b755c0f1b1d8 gentoo-base:20220415 "/sbin/init" About a minute ago Exited (137) 9 seconds ago gentoo-base
initprocess remains running afterwards:# docker-compose top gentoo-base UID PID PPID C STIME TTY TIME CMD ---------------------------------------------------------- root 3510 3489 0 17:40 ? 00:00:00 init [0]
Nevertheless it is possible to use sysvinit as a Docker container init process. Required steps are following:
Updated by cryptogopher over 3 years ago · 10 revisions