In the case (example configuration) above, you should only expose port 8081 on Docker (and not port 80 or port 443).
Ports 80 and 443 are exposed by the reverse proxy outside the container and that traffic is proxied to port 8081 (in your example above), the port you have exposed inside (mapped to 80 inside).
This will work only if you have mapped port 80 inside the container to port 8081 (exposed to the host).
expose:
- "8081:80" # http
Hope this helps.
PS: @rebelCoder, your apache2 configuration on the SSL side is missing a lot of configuration info you need.
See this post: