Docker is an open platform for developing, shipping, and running applications. It provides containers that package up code and dependencies so applications can run uniformly and isolated across any infrastructure from development to production. Containers are lightweight and contain everything needed to run the application, including code, runtime, system tools, system libraries and settings.