”Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment.” Docker Inc. (2016)
Right, But what is it? • Built on top of Linux kernel features like control groups • Isolates process and their resources from others running on a single kernel • Not “light weight” virtualization as often described. This is inaccurate
The Official Registry & Library • Default place to push & pull images (customizable) • Tons of useful base images in the official library! • Covers 90% of common use cases • User contributed images cover the remaining 10% • Odds are there is a base image for your language (Python, Ruby, Node, Java, Go, and more) • Also images for data stores (Redis, MySQL, MongoDB, and more)
Docker Compose • Models multi container applications through a configuration file • Great for development and testing • Can even be used to deploy to staging/ production