Why Use Containers
Benefits for Container Users
Why would you want to use a container? Beyond the problems you would have running an application if you had to build it yourself, there are additional benefits to containers. You can run them on many different computers, even ones that are not running the same operating system that the application runs in natively. That operating system (except for the kernel) lives inside the container, and wherever you take that container, you have the operating system. The application is separate from the computer and does not affect the computer. If it requires a particular version of a library, it does not require the host computer to have that version of that library. Therefore, it is possible to have two different applications in containers that use different versions of a library, and yet they don't create a conflict on your computer. This isolation of applications inside their containers is very useful.
Benefits for Container Creators
There are also benefits to people who want to publish their software. They can deliver it to people as a container, share it privately with individuals, or post it to a registry where it could be downloaded by anyone. This is a good way for researchers to publish their software along with the paper and data encapsulated in their research. Versioning of these applications is also possible. You can have incremental improvements to your application, and someone could use the latest version or a previous version if that's what they prefer.
CVW material development is supported by NSF OAC awards 1854828, 2321040, 2323116 (UT Austin) and 2005506 (Indiana University)