Chapter 5. Configuration management—getting your house in order
This chapter covers
- Managing the building of images using Dockerfiles
- Building images using traditional configuration management tools
- Managing the secret information required to build images
- Reducing the size of your images for faster, lighter, and safer delivery
Configuration management is the art of managing your environments so that they’re stable and predictable. Tools such as Chef and Puppet have attempted to alleviate the sysadmin burden of managing multiple machines. To an extent, Docker also reduces this burden by making the software environment isolated and portable. Even so, configuration management techniques are required to produce Docker images, and it’s an important area to be aware of.
As you get more experience with Docker, these techniques will give you more tools for building images for whatever configuration needs you’re trying to satisfy.
Dockerfiles are considered to be the standard way of building Docker images. Dockerfiles are often confusing in terms of what they mean for configuration management. You may have many questions (particularly if you have experience in other configuration management tools), such as
- What happens if the base image changes?
- What happens if the packages I’m installing change and I rebuild?
- Does this replace Chef/Puppet/Ansible?