What is Docker?August 30, 2017
Docker is a wide platform designed to make it simple to create, deploy, and run applications by using containers. Containers allow a developer (like me) to package up an application with all of the parts it needs, such as libraries, its dependencies, and the framework itself and ship it all out as one package. So, thanks to the container, the developer can be sure that it’s application will run without care on what environment will host the application.
Obviously if the application and the API used are strictly coupled to the OS the application will run only on a compatible host e.g. only on a Windows or Linux machine.
Imagine Docker like a virtual machine. But, the main difference between them, is that Docker instead of creating a whole virtual operating system, allows applications to use the same 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 performance boost and reduces the size of the application.
And VM and Docker can be combined to empower deploying, scaling and managing applications:
For who Docker is designed?
The Docker platform is designed to benefit both developers and system administrators, the problematic and well-knowed Dev vs. IT scenario. Using Docker these figures embrace the DevOps (developers + operations) philosophy. For developers, it means that they can focus on writing great code without fit the application on the machine that usually in prod is different than in QA. For sysadmins, Docker gives flexibility and potentially reduces the number of machines needed to run applications.
A container is 1:1 to the machine?
No! One of the main benefits is that a single Docker can run multiple containers.
Docker provides a good and deep docs portal, and is open source with a support coming from the community.
Oh, I recommend to see their video on the Youtube channel, it puts ligth on some common questions.
I have particularly appreciated this: