Dockerfile COPY vs. ADD

What is the difference between COPY and ADD in Dockerfile and when to use either of them.

The different between them is very subtle and somehow I have to lookup for the documentation every time I start a new Dockerfile.

TLDR: ADD supports remote URL and tar extraction while COPY only works with local files. Use COPY unless you have a reason to use ADD.