Images
What's in an Image (And what isn't)
- App binaries and dependencies
- Metadata about the image data and how to run the image
Official definition:
- "An Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime"
Not a complete OS. No kernel, kernel modules (e.g. drivers)
Small as one file (your app binary) like a golang static binary
Big as a Ubuntu distro with apt, and Apache, PHP, and more installed
Layers
- Images are made up of file system changes and metadata
- Each layer is uniquely identified and only stored once on a host
- This saves storage space on host and transfer time on push/pull
- A container is just a single read/write layer on top of image
Union Filesystem
- Based on layers of changes
Official Repositories
They live at the "root namespace" of the registry so they don't need account name in front of repo name
- When uploading to DockerHub you need to be first logged in. You can do that with:
docker login # logs you in to DockerHub
docker logout # always logout on shared machines or servers