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?

  • RabbitMQ doesn't respects Docker memory limits
  • How to run maven test with mysql running in docker
  • subgit timeout waiting for pid file
  • Build with maven in docker throw {}->unix://localhost:80: No such file or director
  • Openshift pods crash
  • docker daemon start using ansible
  • How to share a folder between my Mac and a Docker container
  • Adding standard CA roots to busybox docker image
  • Docker container is not able to populate SECRET_TOKEN env variable for rails app
  • Kubernetes Pod fails with CrashLoopBackOff
  • Docker - logging to Graylog2 container with GELF log-driver raises an error
  • docker running in vmware gets x509 error
  • 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.