The basement on top of which the Docker engine is built; we can also call it the container plumbing and is formed by the two component—runc and containerd.
Originally, Docker was built in a monolithic way and contained all the functionality necessary to run containers. Over time, this became too rigid and Docker started to break out parts of the functionality into their own components. Two important components are runc and containerd.