Docker is a container that wraps a piece of software into a complete file system, including everything the file would require to run (code, runtime, system tools, etc.). It then allows you to ship and use this container on any environment, regardless of the system requirements or the operating system.