Docker has given a different perception to application development and their run time environment. Containerization of application is very much essential now a days. Think about you have two different application in production server at same time and those applications are developed in Node.js 8 and Node.js 10 respectively. Now you can imagine how much trouble it could be to manage two different Node.js version.
If you were using Docker, you could simply spin up another container, set the Node.js version to 8.x and put it right next to your other container that has Node.js version 10.x on it, running on the same server with no problems whatsoever. That flexibility, portability and the option to more efficiently use your server resources are what make Docker so compelling to use.
For PHP and MySQL, you may read our blog on Build Docker Container for PHP 7 and MySQL Based Application