Docker #
A higher level abstraction of containers.
The core purpose of Docker is to package and containerize applications, enabling them to be run anywhere, anytime, repeatedly.
Cool things about Docker (aka Ode to Docker):
-
Abstracts away from dependencies and underlying infrastructure
-
Resolves environment setup challenges
-
Ensures operatability across different environments
-
Run components in different containers
-
Lower overhead compared to virtualization as the OS is common across containers rather than replicated across multiple virtual machines. Also, more resource sharing across containers.
Containers #
A completely isolated environment - processes, network, mounts.
BUT separate containeres can be stacked on the same OS kernel.
Containers are dependent on the specific underlying operating system type (e.g., Linux, Windows). I usually go with Linux.
Image #
Images are templates.
Containers are instances of images.
Dockerfiles are used to define the image.
DockerHub #
DockerHub: A super awesome store of Docker container images.
Resources #
- Probably my favorite concise video on Docker