‫All right before we jump into images, let's talk about what this section is all about.
‫First, we're going to discuss the basics of images and the concepts that you're going to need
‫and what is actually in an image and, just as importantly, what isn't in one.
‫Then we're going to talk a little bit about how to find images on the Internet and we'll actually go and look
‫at some, dive into that whole process of finding good images and how to manage those images once we've
‫downloaded them or created them on our own machines. Then we'll jump into the fun part of actually
‫making our own images.
‫So before we start playing with images and learning how to use them for containers, we probably want
‫to step into what exactly is in an image and what isn't. The way I like to explain it is very simple.
‫It's the application binaries and dependencies for your app and the metadata on how to run it.
‫But if we went to the official definition, it would be "an image is an ordered collection of root filesystem
‫changes and the corresponding execution parameters for use within a container runtime."
‫But I like my version better.
‫Inside this image, there's not actually a complete OS. There's no kernel. There's no kernel modules
‫like drivers.
‫It's really just the binaries that your application needs because the host provides the kernel.
‫That's one of the distinct characteristics around containers that makes it different from a virtual
‫machine; it's not booting up a full operating system.
‫It's really just starting an application, and that image can be really small.
‫It can be a single file.
‫If you're, for instance, using Go, one of Go's features is that it can build a static binary and have
‫a single file as your application.
‫So you could do that. Or you could have a very big image that's actually using some distribution like
‫Ubuntu with its own package manager built in, and where you've installed Apache, and PHP, and your source
‫code, and all the added modules you need.
‫You can have it multiple gigabytes.