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?

  • How to run Express and Mongo using docker-compose
  • DNS Server in Docker Container
  • Apache remap to apache within docker container
  • How can I install and run Docker CE on OpenSUSE Linux?
  • Pig `Failed to create DataStorage` to Hadoop cluster in Docker ENV
  • Running a docker container as a task in marathon
  • postgres table does not exist from using docker-compose
  • Docker-compose does not start containers
  • Docker for mac - Not able to connect to a mongo replica set running on host from inside the container
  • CoreOS: dockerized mongo instance connection refused from another dockeried mongo
  • How to pull from private docker repository on docker hub?
  • Fails to setup docker for port number 6006 published for TensorBoard
  • 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.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.