I started playing with Docker from the bottom of my heart because it is advantageous for job hunting or because it is a technology used in modern in-house development, but as I continued learning, I came to understand that Docker is a very powerful technology. ..
It is a product consisting of an application for realizing container-type virtualization technology and a CLI (command execution). In 2013, Docker's Solomon Haik released it as open source software and it became popular. Compared to existing software, resources are secured from the host OS for processing without using the guest OS, so it operates lightly with less overhead.
The major difference from existing virtualization technology is this containerization. Each application is packed in a box (containerized) and communicated with an orchestration tool (docker-compose, etc.). This containerization is powerful, and if you put the dependent libraries etc. in the container, it will work in exactly the same way in another Docker environment. In other words, the same environment can be reproduced in an instant without worrying about the version of the library in the developer's local environment.
This is where I was very impressed. Due to the high portability of containerization mentioned above, it is possible to reproduce the same situation as the production environment in the development environment and deploy the developed one as it is. Also, support is now quite substantial, with *** AWS ***, *** ECR *** (a repository like Docker Hub), *** ECS *** (can be orchestrated and scaled). Yes, it's easy to deploy, and it's extremely easy to operate. Furthermore, by using AWS CLI tools (ecs-cli, aws cli, etc.), it is possible to instantly launch VPC, EC2, etc. with a few lines of commands.
Because of these, it worked in my environment but not in that person's environment. You can reduce wasted time due to environmental differences such as deploying but not working well. The next generation of fledgling engineers may not experience the environment construction that was clogged when they started programming ...
There is a reason for the radical opinion that after studying Docker, only convenient places can be found, and companies that have not adopted this technology should consider changing jobs. However, not all fledgling engineers are involved in in-house services using modern technology, and even the company I join is likely to build a muddy environment without using Docker. However, I think it will become more convenient, but on the other hand, the infrastructure of Web engineers will become weaker and weaker. I thought. After all, I think that the engineers in the field who are currently touching Docker in their work also experienced the environment construction that became a secret sauce and came up with the current style. I thought it was a training, and I wish I could see that *** whale *** in my work a few years later.