This document discusses Docker and Chef for container management. It begins with an introduction to Docker, describing how it allows packaging applications and dependencies to run unchanged on any system. Some rough edges of Docker are discussed, such as linking containers and complex configuration needs. The document then introduces Chef as a tool for configuration management and automation that can address Docker's rough edges. It provides examples of using Chef recipes and templates to manage Docker images, run containers, inject configurations, and deploy containers across multiple hosts. The document argues that Chef enables treating infrastructure as code and provides a standardized workflow for managing Docker containers at scale.