What is a Container?
A container is an isolated unit of software that contains everything required to run a specific application, including code, libraries, dependencies, drivers and settings. Containers have several strengths, they are:
Consistent: Containers guarantee a consistent behavior regardless of where you deploy them. Since they package all the software dependencies necessary to run an application (including specific versions of runtimes and software libraries), containers run and produce the same output in any environment. Therefore, containers are ideal for running the same application in multiple environments. For example, you can use them to test your applications simultaneously, run multiple simulations, or to do reproducible research in different environments.
Portable: You can deploy containers in almost any operating system or platform. Containers can run on Linux®, Windows® and Mac operating systems and you can deploy them in a private data center, a public cloud (such as AWS® or Microsoft® Azure®) or in a local environment. This means that you can easily share a container with your colleagues without worrying about software or platform dependencies.
Isolated, lightweight and efficient: Unlike a virtual machine, containers share part of the operating system (the kernel) of the host machine and multiple instances of the same container share common resources. This feature makes them lightweight and efficient, containerized applications can start in seconds. However, containers are isolated from each other and the host operating system. That is, they have read-only access to shared resources and can only change files inside the container itself. To extend functionality, you can mount additional files, folders, and devices into containers.
Virtualized: Containers virtualize the operating system including CPU, GPUs, memory and file system. Therefore, a containerized application thinks that it has access to a regular operating system. This means that you can use the same logic to program a containerized application that you would use for a regular application.
To get started with containers, you can start a container that includes MATLAB® and all the software dependencies necessary to run it. For more information, see MATLAB Container on Docker Hub.