The basic idea of containers is to package your software with everything you need to execute it into one executable package, e.g., a Java VM, an application server, and the application itself. You then run this container in a virtualized environment and isolate the contained application from its environment.
The main benefit of this approach is that the application becomes independent of the environment. An added benefit is that the container is highly portable. You can easily run the same container on your development, test or production system. And if your application design supports horizontal scaling, you can start or stop multiple instances of a container to add or remove instances of your application based on the current user demand.
The Docker project is currently the most popular container implementation. It’s so popular that people use the terms Docker and container interchangeably. Keep in mind that the Docker project is just one implementation of the container concept and could be replaced in the future.
If you want to give Docker a try, you should start with the free community edition. You can install Docker on your local desktop. This allows you to start building your own container definitions and deploy your first application into a container. And when you’re done, you can handover the container to a coworker who does quality assurance and deploys it to production afterward.
