From the course: Azure DevOps: Modernizing Apps with Container Services
Containerization: What are containers? - Azure Tutorial
From the course: Azure DevOps: Modernizing Apps with Container Services
Containerization: What are containers?
- [Instructor] Let's start by defining what containers really are. To do that, we need to look back at virtual machines. Virtual machines enable having multiple operating systems in a single set of hardware. This has two main benefits. First, effective resource allocation. If two virtual machines share the same hardware, both of them can take advantage of the underutilized resources in the hardware. The second defining property of virtual machines is isolation. Applications running in separate virtual machines do not have access to each other's data. Containers take the idea of virtualization even further. When virtual machines virtualize the hardware, containers virtualize the operating system. Compared to virtual machines, containers are more easily portable and more resource efficient. Container images are typically an order of magnitude smaller than virtual machine images. A unit of isolation in virtual machines is a virtual machine image. For containers, the same unit is called a container image. Multiple containers can run on the same operating system while still running as separate, isolated processes. Most container images are based on a parent image, often referred to as a base image. Base images typically contain the operating system and application frameworks such as node.js. Virtual machine images are hosted in hypervisors, such as hyperV, KVM, or VMware. Similarly, container images are hosted in container engines. The most popular runtimes are Docker and containerD. Once you have an environment that has a container engine installed, you can run any container images on it, and it always behaves the same. This enables you to build your applications locally and ship the same container image to staging and production in the cloud.