Summary
In this chapter, we've examined some of the problems associated with software deployment, some of the options for solving them, and the advantages of the container solution. We've briefly introduced the basics of container technology and Docker in particular, and seen that containers are another kind of configuration management problem, which Puppet can help solve.
We've installed the docker_platform
module, used it to set up Docker on our VM, and build and run simple Docker containers. We've seen how to automatically rebuild the container image when the underlying Dockerfile changes, and how to use Puppet to configure a Dockerfile dynamically at build time.
We've introduced the topic of persistent storage for containers, including host-mounted volumes and Docker volumes, and how to manage these with Puppet. We've set up a Docker network with two communicating containers exchanging data over network ports.
We've looked at the advantages and disadvantages of running Puppet inside containers...