Containers are a method of virtualization that packages an application's code, configurations, and dependencies into building blocks for consistency, efficiency, productivity, and version control. This page gathers resources about containers, including technical definitions and comparisons.
Table of Contents:
Below we have compiled publicly available sources from around the world that present views on What is a Container.
The Container Security book by Liz Rice Fundamental Technology Concepts that Protect Containerized Applications
Containers allow you to easily package an application's code, configurations, and dependencies into easy to use building blocks that deliver environmental consistency, operational efficiency, developer productivity, and version control.
Containers exist because they solve an important problem: how to make sure that software runs correctly when it is moved from one computing environment to another. Here is your comprehensive guide to containers and the different tools available to you.
Docker is a software platform for building applications based on containers — small and lightweight execution environments that make shared use of the operating system kernel but otherwise run in isolation from one another. While containers as a concept have been around for some time, Docker, an open source project launched in 2013, helped popularize the technology, and has helped drive the trend towards containerization and microservices in software development that has come to be known as cloud-native development. Here is your comprehensive guide to Docker containers and the different tools available to you.
What is a Container — Containers are a method of virtualization that packages an application's code, configurations, and dependencies into building blocks for consistency, efficiency, productivity, and version control. This page gathers resources about containers, including technical definitions and comparisons.
What is a Container Image — A container image is a self-contained piece of software that has everything in it needed to run – code, tools, and resources. This page gathers resources about container images, including tutorials and container-related conferences.
What is a Container Image Repository — A container image repository is a collection of related container images, usually providing different versions of the same application or service. This page gathers resources about image repositories, including tutorials and specific environments in which image repositories are used.
Container Image Registries — A container image registry is a service that stores container images, and is hosted either by a third-party or as a public/private registry such as Docker Hub, Quay, and so on. This page gathers resources about container image registries, including tutorials and specific technologies or tools related to container image registries.
Containers and Agile Development — Agile software development and delivery via containerization are tightly related. This page includes resources about the benefits of using containers in the agile development cycle.
Containers vs Virtual Machines — A virtual machine (VM) is an operating system or application environment installed on software, which imitates dedicated hardware. This page gathers resources about the VM vs. containers comparison, including a comparison of strengths and weaknesses, application portability, security and isolation, and more.
Containers vs Traditional Application Model — The traditional application model is a model in which applications are executed directly on virtual machines or on bare-metal servers. This page gathers resources about the difference between containerized infrastructure and the traditional application model.
Containers and Microservices — Microservices or microservices architecture describes a particular way of designing software applications as suites of independently deployable services. This page gathers resources about using containers to build a microservices architecture and the benefits of combining microservices with containers.
Service Mesh — A service mesh is a configurable infrastructure layer for a microservices application. It makes communication between service instances flexible, reliable, and fast. This page gathers resources on service mesh architecture, examples an the Istio project.
Refactoring a Monolith to Microservices — Today’s requirements on modern web applications demand high availability and scalability for which a microservice architecture has shown to be a promising solution. However, building a microservice architecture from scratch is sometimes not possible when monolithic web applications are already in place and cannot be replaced. Instead, it is required to break up this monolith step-by-step into microservices.