Cloudflare is a good choice. I used DNSExit for a while, and also NS1, but settled on Cloudflare. You don't have to use their proxying, just DNS.
Here's a Docker Compose for you that will set myhost.mydomain.com to point to your public IP of wherever it is run:
dyndns-cloudflare:
image: oznu/cloudflare-ddns
container_name: dyndns-cloudflare
environment:
- API_KEY=<key>
- ZONE=mydomain.com
- SUBDOMAIN=myhost
- PROXIED=false
restart: unless-stopped