The first example would be better for launching the app several times. If you used ENTRYPOINT instead of CMD , you could make the container behave as if it were an app (because it would launch the app with something that you passed as arguments to the command line). If you later want to use this image as the basis for another image, you can access the app .
The second example will work a little slower, since it has to extract the zip file every time you docker run , and you cannot easily use the app if you make it the parent image since the app not been installed.
In general, I would suggest using the first format, but the second option is suitable for trivial zippers and images and dump containers.
source share