This document discusses using Docker and Ansible together for infrastructure as code. It begins with an overview of problems with traditional deployment approaches and advantages of defining infrastructure programmatically. It then provides in-depth explanations of Docker concepts like images, containers, Dockerfiles and how Docker works. The remainder covers using Ansible for configuration management, explaining concepts like modules, inventory, playbooks and roles. It emphasizes that Docker and Ansible together provide an easy way to start automating infrastructure while removing dependencies on specific technologies.