I would definitely say on the host. This is the recommended way, because node exporter needs access to certain metrics which are not available within the container.
It's true that you still have access to various host metrics even when running in a container if you expose /proc and /sys, but you run the risk of scraping the container-related metrics instead of the host nonetheless.
One example are the network-related metrics. By default containers run in their own network namespace (and this is how you'd want them to run under normal circumstances), so given this default, you're going to scrape information related only to that container instead of that of host, despite the fact that you're exposing the aforementioned pseudo-filesystems.
It's not recommended to deploy it as a Docker container because it requires access to the host system
but after that they explain how to run it from inside a container... so I'm a little bit confused! Is best from outside container or not ? What is the difference ? – Hypsometry