The kernel has no idea what a container is
Search the Linux kernel for a container and you will not find one. There is no container struct, no create_container() system call, and no subsystem that owns the concept.
What exists is an ordinary process, started with several independent isolation features enabled. The word container names that combination, and it is a term of art in userspace rather than a kernel object.
That is not pedantry, and it has practical force. Because a container is just a process, ps on the host shows it, the host scheduler schedules it, and it competes for the same CPU and memory as everything else. There is no boundary in the kernel separating container processes from ordinary ones; there are only processes with different views and different limits.
The lesson Syscalls and the Kernel Boundary builds the two features this rests on and shows that a container falls out of them. This cursus starts from that point and asks the questions it leaves open: where does the filesystem come from, what actually starts it, and how much isolation is really there.
A one-paragraph recap first, so the rest stands alone.

