You can think of Docker as something that lets you run all of your self-hosted services inside of their own virtual machine. To each service, it looks like that service is running on its own separate computer. (A Docker container is not actually a virtual machine, it’s something much faster than that, but I like to think about it the same way. It has similar advantages.)
This has a few advantages. For example, if there is a security vulnerability in one of your services, it’s less likely to affect your whole server if that vulnerable service is inside of a Docker container. Even if the vulnerability lets an attacker see files on your system, the only “system” they can see is the one inside of the Docker container. They can’t look at anything else on the rest of your actual computer, they can only see the Docker “virtual machine” that you created for that one service.
I’m an advocate of running all of your self-hosted services in a Docker container and even I can admit that this is completely accurate.