In brief:
What makes Docker so good?
- Portability — Docker containers can be run on any Linux server — on your laptop, your local server, public or private cloud, etc. It means that, if you want, your local development environment can be exactly the same as the production environment. What’s more, you can easily share the environment configuration with your teammates.
- Isolation — Docker uses resource isolation features of the Linux kernel, so that every container run within a single Linux instance is independent and isolated from the other containers as well as the host.
- Performance — Docker containers don’t include a separate operating system, like virtual machines do. Instead, they all share the same Linux kernel, and as as consequence, the performance of Docker containers is nearly identical to the bare metal!
- Modularity — in Docker each part of your stack, like a web server or a database, should be run in a separate container. In fact, you can create your Docker environment using different containers linked together, the same way you build something with Lego bricks!
- Community — on Docker Hub, the ultimate source of Docker images, there are 86 official images for different tools and thousands of unofficial images created by the community. What’s more, there are more than 50 thousand of repos on GitHub connected to Docker.
If you feel more comfortable with reading rather than watching and listening, you can read my blog post about this subject on Medium. And if you are interested in a real life use case, you may check out my blog posts about developing and deploying Schibsted.pl site with Docker:
- Read also: How we used Docker to develop Schibsted.pl
- Read also: How we used Docker to deploy Schibsted.pl