nginx proxy manager tutorial https://www.youtube.com/watch?v=P3imFC7GSr0
The linuxserver.io docker container exposes only port 80 thus making the need for a reverse proxy mandatory in order to host an internet facing blog with it.
You don't need to expose the application ports to the server since nginx that runs on docker creates an internal docker bridge and you simply connect your apps to that.
docker run -d \ --name=ghost \ --network=nginx_reverse_proxy_default \ -e url=https://blog.kastanis.gr \ -v ${PWD}/content:/var/lib/ghost/content \ --restart unless-stopped \ ghost