Do I first need docker environment before starting my project?
I am going to work with Node.js and PostgreSQL on Linux. I read many hours about how docker actually works. Still I am not sure that is docker environment needed before starting my project or I can use docker after completion of the project?
2 Solutions collect form web for “Do I first need docker environment before starting my project?”
Lets first understand what docker is and how you can use it in your project.
Docker have three core concepts:
1) Docker engine : a lightweight runtime and robust tooling that builds and runs your Docker containers.
2) Docker image : a carbon copy of your project environment including all environment dependencies like base operating system, host entries, environment variables, databases, web/application servers. In your case, Linux distribution of your choice, node.js and required modules, PostreSQL and it’s configuration.
3) docker container : can be visualized as an virtual Linux server running your project. Each time you use docker run, a new container is launched from the docker image.
You can visualize a docker-environment as an lightweight virtual machine where you can run your project without any external interference(host entries/environment variables/ RAM/ CPU) from other projects.
So as a developer, you can develop your project on your Dev machine and once it’s ready to be pushed to QA/Staging you can build a docker image of your project which then can be deployed on any environment(QA/Staging/Production).
You can launch multiple container from your image on single or multiple physical servers.
You can introduce docker whenever you want. If using multiple servers then you can create a docker container with one server in it and the other (non dockerised solution) makes requests to that.
Or you could dockerise them both.
Basically, introduce docker when you feel the time is right.
I like to divide a large project into multiple sections – e.g. front end web sever, backend authentication server, backend API server 1, backend API server 2, etc
as each part of the project gets completed i dockerise it. The other parts then use the dockerised solution.
Hope it helps.