Writing a container in rust
- 1 Introduction to containersOverview of what is a container, the problem of software isolation it solves and how does it compares to other solutions.
- 2 Starting the projectCreation of the project, the logging system, the error handlings, and arguments validation
- 3 Creating the skelettonGetting the configuration, creating the skeletton for the container, checking the Linux kernel version for compatibility
- 4 Birth of a child processPrepare inter-process communication (IPC), create a clone of the parent process while restricting its scope using namespaces.
- 5 Defining the container environmentSet the container hostname, modify the container mount point, pivoting the root.
- 6 User namespaces and Linux CapabiltiesSet up user namespaces, map the UID / GID, restrict the child process with linux capabilities
- 7 Syscalls and resources restrictionHow to restrict the binary running inside our container in order to protect our system. Introduction to seccomp, syscalls, cgroups, rlimit
- 8 Executing the binaryExecute a binary inside our container, resolve issues of dynamic libraries, mount directories inside the environment. Conclusion of the serie