Why we use Docker

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. ..

What is Docker

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.

Operation and development in containers

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.

Can also be used in production environments

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.

Breaking away environmental differences

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.

Recommended Posts

Why we use Docker
Why use orchestration tools with Docker
Why use Docker? Docker recommendations for small cis tubes
Use Puphpeteer with Docker
Use ngrok with Docker
Use GDAL with Python with Docker
Simply consider "why use interface"
[Docker] Use whenever with Docker + Rails
Use Docker Compose on Windows 10 Home
Use Docker on your M1 Mac
[Artifactory] How to use Docker repository
[WIP] Use NFS for Docker Volume
Use Docker CE (official) on CentOS 8
Use cuda11.0 with pytorch using Docker
[Splunk] Build Splunk Enterprise (use docker image)
We introduced clang to docker today. (Solution)
[Docker] Use environment variables in Nginx conf
[Rails] How to use rails console with docker
[Docker] Building an environment to use Hugo
Use docker in proxy environment on ubuntu 20.04.1
Use Symbolic Link with Docker multi-stage builds
How to use Docker in VSCode DevContainer
Create Docker to use Edge TPU compiler
Let's finally use Docker: Terms, Images, Launch
Try to use docker command without sudo.
Understand in 5 minutes !! How to use Docker
Use selenium docker for CircleCI system specs
Use ZStandard with .NET Core + Docker (Alpine)
[Java] Why use StringUtils.isEmpty () instead of String.isEmpty ()