Explain to me like I'm 5, why I should use Docker locally

The reasons to use Docker is it creates containers for code and their dependencies. It allows you to install tons of libraries into the container and not put them on your entire system. It also allows you to create “live or production” containers and “development” containers and then you can use the docker container to either test those environments independently or work on them without affecting the live versions.

If you don’t use the virtual environment then when your system updates it probably will upgrade these libraries and break your code. This can be a real nightmare when your production versions of code aren’t written for a new library, etc. However, you will still have to support the production until you can upgrade it away. What if one of your users calls in a bug with production and now you need to use that environment, etc? This is why you use docker – you usually need a replica of the production environment for bug investigation/testing and you need a working “dev” copy to upgrade on the latest libraries. The other reason is because so many services innately understand what to do with a docker container and you can instantly push the entire “environment” to them and install all the dependencies instantly. The container will then run on your host and will be running EXACTLY what you had on your dev computer. It lets you do things like zero-downtme upgrades, load-balancing, and quickly spinning up more copies of the environment.

Obviously, this is much more complicated than “5 year old”, but this is why you use it. You may or may not need that functionality when you’re plunking around, but I guarantee when you start doing paid work you will be using these things all day.