Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code.
In a way, Docker is a bit like a virtual machine. But unlike a virtual machine, rather than creating a whole virtual operating system, Docker allows applications to use the same Linux kernel as the system that they're running on and only requires applications be shipped with things not already running on the host computer. This gives a significant performance boost and reduces the size of the application.
Docker brings security to applications running in a shared environment, but containers by themselves are not an alternative to taking proper security measures.
The Docker platform is the only container platform to build, secure and manage the widest array of applications from development to production both on premises and in the cloud. Docker Community Edition [CE] empowers developers with tools to build applications and Docker Enterprise Edition [EE] provides IT with multi-architecture operations at scale.
Docker delivers both an engine for innovation that modernizes without disruption while reducing total costs by more than 50%. Unlike other solutions that specialize in a narrow slice of the enterprise IT portfolio, Docker delivers operations at scale by addressing a diverse set of applications and infrastructure for both developers and IT.