Containerization with Docker

Containerization with Docker is awesome. Lots of developpers and companies love it.
I love it too, it is way more easier to use and to maintain than services directly installed on the server.
Docker is a type of virtualization which change the environment to create a virtual machine. It sounds complicate but in short it is just files in a folder with the ENV pointing to different file than the host.
I have been very interested by the simplicity of the configuration, creation and deployment of a container.
For me, it gave me and still gives me a really huge help testing a software before using it. Unfortunately, it cuts the pleasure to install and configure a service as it is already all inside the shipped container.

I don't often create my own container because lots of them are already available on Docker Hub and it is usually a matter of just read and adjust the example configuration given.

I mainly use:

Concept

The main purpose of Docker is simple: focus on the project and forget about technical issues as OS, libraries, envrionment etc.
That path let users of Docker to create, share and deploy application easily and more efficiently.
You can read their official docs at https://docs.docker.com/engine/docker-overview/ but I want to write here some interesting facts and practice about Docker containers.

  • A container has a goal and when it reaches it, it stops.
  • A container is ephemeral, which means don't rely on it because it can be destroyed easily (which is its purpse).
  • Data needed to be backed up are outside the container and bind/mount into the container (from the host or a volume).
  • Don't forget the right permission in the Dockerfile or after.
  • Try to replicate what you will do with physical devices and adapt the solution (A container is equivalent to a computer except you can trash it).
  • ...