RancherOS is a 20mb Linux Distro that Runs Docker as Pid1 and all services as system containers.
When we started the RancherOS project, we set out to build a minimalist Linux distribution that was perfect for running Docker containers. We wanted to run Docker directly on top of the Linux Kernel, and have all user-space Linux services be distributed as Docker containers. By doing this, there would be no need to use a separate software package distribution mechanism for RancherOS itself. In RancherOS, the Docker daemon runs as PID 1, the first process the kernel starts when it boots. We call this instance of Docker "System Docker," as it is responsible for initiating system services, such as udev, DHCP and the console. Each of these system services run as containers. System Docker takes the place of the init system, such as sysvinit or systemd, in other Linux distributions. RancherOS creates a special system service container called User Docker, that is created by System Docker. A separate Docker daemon runs in the User Docker container. Because all user containers run inside the User Docker container, deleting all user containers, for example, will not bring down the system containers running RancherOS services.