Start with namespaces and cgroups. Once you realize that docker is basically a management interface over those, everything will click.<p>I’m trying to find a really good blog from years ago but having trouble. This looks good though: <a href="https://ericchiang.github.io/post/containers-from-scratch/" rel="nofollow">https://ericchiang.github.io/post/containers-from-scratch/</a>
Super late to this thread but the best video I've ever seen on how docker/containers work is this one:<p>Jessica Frazelle's (docker core maintainer) talk on how to build containers in pure bash and C:
<a href="http://containersummit.io/events/nyc-2016/videos/building-containers-in-pure-bash-and-c" rel="nofollow">http://containersummit.io/events/nyc-2016/videos/building-co...</a><p>There's also this one, which is similar:
<a href="https://www.youtube.com/watch?v=HPuvDm8IC-4&t=1103s" rel="nofollow">https://www.youtube.com/watch?v=HPuvDm8IC-4&t=1103s</a>
I would recommend you to read the LWN series on namespaces.
The articles are not very recent, but this low level part of docker (kernel namespaces) has not changed.<p><a href="https://lwn.net/Articles/531114/" rel="nofollow">https://lwn.net/Articles/531114/</a>
For a start I would recommend to listen to this podcast:<p><a href="http://www.se-radio.net/2015/01/episode-217-james-turnbull-on-docker/" rel="nofollow">http://www.se-radio.net/2015/01/episode-217-james-turnbull-o...</a><p>And then for a more technical and practical view I would recommend this course:<p><a href="http://shop.oreilly.com/product/0636920051350.do" rel="nofollow">http://shop.oreilly.com/product/0636920051350.do</a>
I watched these SysAdmin Casts when learning Docker. Follow the links provided in the transcript for more in-depth stuff.<p><a href="https://sysadmincasts.com/episodes/31-introduction-to-docker" rel="nofollow">https://sysadmincasts.com/episodes/31-introduction-to-docker</a><p><a href="https://sysadmincasts.com/episodes/24-introduction-to-containers-on-linux-using-lxc" rel="nofollow">https://sysadmincasts.com/episodes/24-introduction-to-contai...</a><p><a href="https://sysadmincasts.com/episodes/14-introduction-to-linux-control-groups-cgroups" rel="nofollow">https://sysadmincasts.com/episodes/14-introduction-to-linux-...</a>
Jérôme Petazzoni's talk on cgroups, namespaces, etc. I think he has given the talk a bunch of times, I saw it in person once, here is a video I found:<p><a href="https://www.youtube.com/watch?v=sK5i-N34im8" rel="nofollow">https://www.youtube.com/watch?v=sK5i-N34im8</a><p>He goes into cgroups, namespaces, etc. Then does a demo where is manually does what docker does, like untars an image, creates namespaces, creates the networking.
Docker in ~100 lines of bash: <a href="https://github.com/p8952/bocker" rel="nofollow">https://github.com/p8952/bocker</a><p>You'll see it is mostly gymnastics with cgroups, btrfs, pivot_root, and some networking commands.<p>Docker is neat, but it's just using functionality that's already there.
if youre a week in, youll find this helpful.<p><a href="https://jvns.ca/blog/2016/10/10/what-even-is-a-container/" rel="nofollow">https://jvns.ca/blog/2016/10/10/what-even-is-a-container/</a>
This video by Ben Corrie is an excellent expanation for what a container actually is.<p><a href="https://www.youtube.com/watch?v=EnJ7qX9fkcU" rel="nofollow">https://www.youtube.com/watch?v=EnJ7qX9fkcU</a>