P
P
Pavel2018-03-08 10:29:12
Docker
Pavel, 2018-03-08 10:29:12

Should You Use Docker?

Hello!
I started to deal with Docker and a lot of questions arose.
1. As I understand it, Docker is something like a virtual machine management system, and containers are virtual machines themselves.
If so, how much will performance suffer when running the application on a clean operating system or in a docker container?
It turns out that if several containers are launched, each of which has something in common (mysql, postgresql, apache), then several copies of the DBMS or web server will be launched. In addition, each container is based on an OS image, which means that several OSes (maybe even the same ones) will be launched inside another OS
. Will the whole system hang?
2. Does it make sense to use docker in production? If you do not take into account the ease of deployment.
3. Now the task is to set up a server with redmine + gitlab + possibly n-th number of web applications for checking by the boss before putting it into production.
Is it worth it to install everything manually on a clean system?
Or still install using Docker? redmine in its own container, gitlab in its own, the rest in one or more containers.
The simplicity is understandable. For all this, there are already images. But won't it all be stupid?
Recommend articles/documentation written for non-pros describing how docker works. Preferably in Russian.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Anton Shvets, 2018-03-08
@html_profi

1. A container is not a virtual machine, it is a way to isolate an application.
The performance hardly changes. The overhead is barely noticeable.
Yes, multiple copies run. Of course, you should not multiply resource-intensive processes. But DBMS and web servers are not among them. For example, I have 5 postgres running on one microserver without problems. Again, this is as long as the load is not serious.
OS images will not run. They are only needed to provide the application with a runtime environment. Only application processes hang in memory (well, what you launched in the docker)
2. In production, the main point is to simplify the launch of microservices on a diverse fleet of equipment. For classic applications, the profit is only in deployment.
3. There is a difference in the time spent on setting up just redmine, gitlab and several other services installed on the host, and the process of launching the same good in containers. Just in the case of several services on one machine, the docker seriously simplifies everything.
All these rvm, nvm, this package is missing, that one, and here are different versions. Add here another backup organization.
With containers, another problem is their correct update.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question