The most popular and comprehensive Open Source ECM platform
Containers are next-generation technology for packaging, deploying and running applications. While not a direct substitute for virtual machines, they provide a better solution for the use case of creating an environment where an isolated application run. Containers package applications in a much more granular way than what’s possible with standard virtual machine technology, and they do it with just a fraction of the computing power needed by full virtual machines. Containers also have the idea of “build once, run anywhere“, similar to Sun’s slogan for Java nearly two decades ago, but this time applied to applications rather than code.
The founder of Docker, Solomon Hykes, uses the analogy of shipping containers to explain how Docker works and why he named it ‘Docker’. Hykes said that “this is about the mass commoditization of the production of software. Docker can have the same impact on software that shipping containers had on world trade.”
What are the benefits of Docker containers compared to using traditional VM technology? In a recent O’Reilly column, Andrew T. Baker summarized the benefits of using containers:
- Portability – Easier to move and deploy containers than a full virtual machine
- Fast – A virtual machine needs to first boot up an operating system and then start up the app. Containers will start the app almost immediately.
- Flexible composition – Each process can run in it’s own container, rather than a monolithic server, making it easy to swap in an out individual processes and services.
In a recent review of Docker containers by Gartner, Gartner praised the technology but cautioned about it not being fully mature, especially noting security issues that yet to be resolved. Gartner found that “Linux containers are mature enough to be used as private and public PaaS but disappoint when it comes to secure administration and management, and to support for common controls for confidentiality, integrity and availability.”