Runtime for function containers

One of the most important components of the container ecosystem is the container runtime. During the early days of Docker, the runtime was LXC, then it changed to be the Docker-owned libcontainer. The libcontainer was later donated to OCI, the Open Container Initiative project under the Linux Foundation. Later, Project RunC was started. RunC is a command-line wrapper around libcontainer to enable developers to start containers from a Terminal. A developer could start a container by invoking the RunC binary and passing a root filesystem and a container specification to it.

RunC is an extremely stable piece of software. It has been with Docker since version 1.12 and is already used by millions of users. The docker run command actually sends its parameters to another daemon, containerd, which converts that information into a configuration file for RunC.

RunC makes the dependencies simpler as we need only a single binary, a root filesystem, and a configuration file to start a container.

As RunC is a thin wrapper around libcontainer, its code is straightforward. It is relatively easy to directly make use of libcontainer with some Go programming knowledge. The only drawback of RunC is that it is designed and built to run containers in general. In the next section, we will introduce RunF, a minimal runtime designed specially for running function containers efficiently.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset