You could still get around having to take your website offline if you're using letsencrypt by using a docker volume and having it read the certificate from your host machine. I wanted to keep the post short & didn't want to get into volumes. There are several ways to automatically renew a letsencrypt certificate. The last part in https://www.digitalocean.com/community/tutorials/how-to-secu... explains how you can automatically renew using a cron job.
The advantage of using Docker for my setup is being able to plop the whole thing on a different service and having it run exactly the same way (as long as it's provided an ssl certificate).