I am fairly new to docker/containers, and am trying to better understand it by looking at the code.
Looking at runC, it looks like it uses libcontainer much like nsinit in the old code base did, and I am trying to use it as a starting point to understand how to use libcontainer and also to dig deeper into how libcontainer works.
One of the things that I find a bit tricky to understand is the bootstrap process and the call into the C code for nsexec.
I do broadly understand that some initialisation needs to be done for namespaces etc before the calling app (runC/libcontainer) can hand over control to the container process, but I cannot seem to find a good step by step explanation of this. Does anyone know of any good docs in this area ?
Am I correct in assuming that as part of this bootstrap process, the C code will call back into (a clone/child of) runC with an "init" cmd line flag ?