When you deploy an update to your application, you should create new instances (servers and/or containers) and destroy the old ones, instead of trying to upgrade them in place. Once your application is running, you don't touch it! The benefits come in the form of repeatability, reduced management overhead, easier rollbacks, and so on. An immutable image is an image that contains everything it needs to run the application, so it comprises the source code. One of the principles of Docker containers is that an image is immutable. That is, once built, it is unchangeable, and if you want to make changes, you'll get a new image as a result.
Docker containers are self-sufficient and hence we just have to run the container without any hassle about anything else, such as mounting volumes. This means that we can share our application with our users or partners in a more easy and transparent...