The official docker image drupal:8.3.5-apache needs a few updates to work correctly with a reverse proxy or load balancer in a bridged network.  The main issue is REMOTE_ADDR will always be the docker gateway IP and REQUEST_SCHEME will be http when seen from inside the Apache docker container on port 80.


Option 1: Application level configuration (Drupal example)

Most apps allow configuring the public URL and/or reverse proxy settings.  

Running a local Ubuntu server from an inexpensive ISP connection without a static IP is possible using a dynamic DNS client.  The dynamic DNS client will automatically update the Name Server records for your domain anytime it detects an IP change.  It is not as reliable as a static IP but it is good enough if you are on a budget.

IMPORTANT:  Before running the apt-get installer you must enter the initial dynamic IP records at NameCheap  (example below for chronos.xmonit.com)