Since you already got a lot of ELI5s, here is a basic to-do to get you up and running. From my experience, since I use the exact same setup as you describe.
Set up your containers in a way you can reach them from you local network (e.g. http://123.456.789.10:123)
Get a domain name (you can get one at the registrar of your choice, e.g. mydomain.com)
Forward Hostname/IP: 123.456.789.10 (if you get an error later on, you can use the docker container name if NPM and your container are connected to the same Docker network)
Port: 123
Via access lists you can provide a very basic username/pw login to protect your sites (you can do more and cooler stuff with Authelia)
Add an A-record for mydomain.com and the public IP of your server (you can google public IP to find it out)
Add a CNAME record for the subdomain with name mycontainer and target mydomain.com
open port 443 of your server in your router
If everything worked right, you can visit mycontainer.mydomain.com, your DNS server will resolve this to your public IP and forwards the request to nginx, which will serve the data of your local container