#100DaysOfWeb in Python Transcripts
Chapter: Days 97-100: Docker and Docker Compose
Lecture: Container history: Operating systems
0:00 Let's talk about some history. Now I told you that the shipping industry's container transformation was not that long ago. In fact it was 1956.
0:10 And it turns out our software container history is pretty recent as well. So let's serve some important dates up here.
0:18 We can go back to 2000, when FreeBSD had what they called jails. And jails were ways for administrators to partition
0:26 FreeBSD systems into smaller, independent little things called jails, which have the ability to have their own IP addresses for each system
0:35 and their own config and so on. So that's kind of a early idea of this container. Take one system, break it up into smaller isolated pieces.
0:42 Around this time we also had Linux Vservers. And Vservers were a way to partition things like file systems and network addresses and memory and so on.
0:52 And this was actually implemented by patching the Linux kernel itself. So Google came up with this thing called process containers
0:59 which were later renamed control groups or cgroups. This is back in 2006, and it was a way to isolate things like CPUs, memory, disk, and network
1:09 you know, for a collection of processes. And keep separate set of resources for each process. You know, Google, they have a couple servers.
1:17 They do tons with containers. Now this started out as a custom Google thing but eventually was merged into the Linux kernel at 2.6.24.
1:26 Not long after that, we have LCX containers and LCX containers were the most complete container
1:34 management system using the cgroups that Google invented. So it's a way for you to manage, control, and run these groups, right.
1:43 Think of this as like an early Docker or something like that. So Google comes up with these groups they get merged into the kernel
1:49 and then LCX is a way to control and manage your processes on it. Then the biggest event in container history for software is that Docker came around.
2:00 So Docker is a way to run these containers as well and it's an entire ecosystem around running and maintaining
2:08 and building these containers and these images. And originally it was based on LXC but then they actually converted it to be their own system.
2:17 It's something called LibContainer. It doesn't matter that much but it started out building on the same LXC stuff
2:23 but now Docker's really it's own thing. And Docker is the de facto way for creating containers I would say these days. Now, it's not the end
2:32 because once you have a real application an application with say a data layer middle tier layer with services that need to scale out
2:41 front end bits with a bunch of servers that you want to scale out and keep them running and update them in real time with zero down time
2:48 things like that, that gets hard to do just even still with Docker. So Kubernetes came along as a way to orchestrate and configure and connect
2:57 all of these different things running in Docker containers. So Kubernetes is a great way to build sort of clusters of these cooperating containers
3:08 built on Docker. Alright, so here's the history. We're really just going to focus on Docker in this chapter but it gives you a perspective
3:16 of where everything lands and even if you're interested in Kubernetes, which you may be, I'll show you some things you can run cooperating Docker
3:23 containers without Kubernetes. But if you are, still you're going to need to understand Docker super, super well. So, let's get to it.