Docker is a high-level program which allows you to package an application and its dependencies (external libraries for example) in an isolated container and which can be run on any server (Windows, Mac, Linux). Today, Docker Certification is increasingly needed.
There are many advantages to using this kind of technology:
– The system is very light because it does not carry an operating system, which also allows better use of resources.
– Docker also allows application isolation, which is very useful for testing without crashing the client production server.
– Docker can be easily controlled thanks to a variety of controls.
However, there are also some drawbacks:
– In terms of safety, this tool can constitute a danger. Indeed, if a hacker attacks the master server containing the containers, he can do whatever he wants with it.
– It could thus easily delete the database without searching too much, or even destroy your website … even if (technically) we really secure the master server. As you can see, if a hacker takes control, you are in very bad shape.
– To summarize: with Docker everything is accessible and easy. So a possible hacker will be much faster to crash your system (if he understands that everything works thanks to this tool).
– A final drawback: it is difficult to have several containers communicate with each other, because the basis of Docker is to isolate all the containers. Except that in certain cases, we need to make them communicate with each other.
Now I’m going to talk to you about containers, to give you a general overview of how this tool works.
What is a Docker container?
A container is a very special virtualization system, using isolation as a partitioning method at the operating system level. It is used to operate different environments – mainly Linux – isolated from each other.
You should know that now Microsoft offers Windows containers, whereas originally Docker only found Linux systems. And vice versa: we can very well have on our Windows machine a container running on Linux, instead of playing with VirtualBox or a dual boot to switch from Windows to Linux and from Linux to Windows, which is not very practical.
What is a Docker image?
An image is a “static” container, that is to say that we took a photo of a container at a time T including our default settings which allows us to duplicate it at will. Docker images also allow you to make backups of your entire environment. In case of a big problem, you can restore them. The downside is that the images can be very heavy, making the restoration a bit long.
What is a Dockerfile?
Dockerfiles are files which allow you to build a Docker image adapted to your needs, step by step. Dockerfiles take up very little space and can be easily shared / transmitted. At the same time, it is possible to recreate its environment quickly. But also to carry out tests with libraries that have undergone new updates, to verify that the system is still working as well before deploying these updates in production.
It is a widely used file that allows you to create a multi-container by simply defining the list of containers to use. And it is very practical because we can thus describe the whole of its environment, consisting of several images or Dockerfiles … but I will soon publish an article to show you how it works.
Now that I have familiarized you with Docker, I am preparing the following article: The best commands to use with Docker. Just follow me!