VMware Tanzu Modern Apps
  • Modern Application Solutions
  • The Why and What of Kubernetes
    • Introduction to Containers
    • Introduction to Kubernetes
    • From Docker Containers to Kubernetes
    • The Power of Kubernetes Services
    • Microservices Architecture
    • What is Cloud Native?
  • Build Kubernetes Runtime
    • Provisioning Kubernetes
      • Kubernetes on vSphere
        • Provisioning Kubernetes Clusters with VMware PKS
        • Provisioning Kubernetes Clusters with VMware Enterprise PKS
        • Provisioning Kubernetes Clusters with the Cluster API
    • Updating Kubernetes Clusters
    • Controlling Ingress with Contour
  • Manage and Monitor
    • Monitoring Kubernetes
    • Monitoring Containers at Scale with Wavefront
    • Monitoring with VMware vRealize Log Insight
    • Managing and Securing Container Images in a Registry
    • Compliance Testing with Sonobuoy
    • Backing Up, Restoring, and Migrating Resources with Velero
    • Managing Microservices with a Service Mesh
  • Multi-Cloud Multi-Cluster Management
  • Challenges Managing Multiple Cluster across Multiple Clouds
  • Introducing VMware Tanzu Mission Control
Powered by GitBook
On this page
  • What Are Containers?
  • How Do Containers Help?

Was this helpful?

  1. The Why and What of Kubernetes

Introduction to Containers

PreviousModern Application SolutionsNextIntroduction to Kubernetes

Last updated 5 years ago

Was this helpful?

What Are Containers?

At a high level, containers are logical constructs that contain the binaries for an application. The binaries run at higher level of infrastructure abstraction than virtual machines. In contrast to a virtual machine, which carries an entire operating system to provide a runtime environment for an application's binaries, a container bundles only an application's binaries and its required binaries. It is assumed that when you run the container, an abstraction layer schedules access to a shared operating system.

In general, a container can refer three things:

  • A container runtime, such a Docker

  • An instance of a running container

  • A container Image

In a similar way to how a Linux kernel helps run application processes by providing hardware resources, a container runtime helps partition the Linux kernel to run isolated Linux processes with specific resource limits around CPU, memory, etc. A runtime also helps isolate application processes by using two Linux kernel primitives: and . Cgroups limit resources to a set of processes running on a Linux host, and namespaces isolate processes from one another. Although Docker is the most popular example of a container runtime, there are others, such as rkt.

A container can also refer to a running instance of a container image. A running container is the set of processes (typically an application) that a container runtime helps support by ensuring the necessary constructs in the Linux kernel are created to limit resource consumption and provide isolation.

A container image is a format to port a running container from one Linux host to another.

Here's a that explains what containers are:

How Do Containers Help?

Containers sit at a higher level of infrastructure abstraction than other infrastructure, such as virtual machines. By doing so, containers improve application portability, server elasticity, and server resource utilization. In addition, a container runtime can schedule multiple containers on a shared operating system, producing many benefits for both infrastructure operators and application developers.

Benefits for Operations, Infrastructure, and IT Teams

  • Lowers the operating system footprint that needs to be managed across servers

  • Reduces an application's dependencies on an operating system

  • Eases maintenance and shortens maintenance windows

Benefits for Application Development Teams

  • Because containers decouple an application and its dependencies from the operating system, development teams can skip creating multiple test environments with various operating systems for validating application behavior

  • Streamlines the development pipeline to reduce the time to build and ship applications

All of these benefits produce a compelling result: Containers shorten the time it takes to build, test, and ship applications.

Here's a Containers 101 :

video
control groups (cgroups)
namespaces
video