Container technology is the literal translation of Linux Container. It was originally used on the Linux operating system. As shown in the figure below, in Linux, container technology is an isolation technique that uses container technology to encapsulate different services in corresponding containers and then combine scripts to make these containers cooperate as required. All containers share the same operating system kernel. Each container can limit CPU, memory, hard disk, and network bandwidth capacity independently, and has an independent IP address and operating system administrator account.
A container is a standard software unit that packages code and all its dependencies so that applications can quickly and reliably migrate from one computing environment to another. A Docker container image is a lightweight, stand-alone, executable software package that contains everything you need to run an application: code, runtime environment, system tools, system libraries, and Settings. Docker is the engine of the container, and the function of the container can be realized through the Docker engine.
The most important value of container technology is that it provides a lightweight, consistent format for application services running on different hosts. Standardization of container formats speeds up the delivery experience, allowing users to easily migrate workloads and avoid being limited to a single platform provider. Using containers, hundreds of applications can be deployed in a short time to ensure that user applications can be quickly online. Container can simplify the configuration process, the user application running environment can be packaged directly into the container, can be directly launched when using.
As shown in the figure above, container technology architecture is shown on the left and virtualization technology architecture is shown on the right. The biggest difference between a container and a VM is that no operating system is installed in a container. The essence of a container is operating system-level virtualization. Starting an application container actually means starting a process, which saves a lot of resources occupied by the OPERATING system and allows a computer to serve more tenants. Container technology abstracts the operating system resources again rather than virtualizing the entire physical machine resources. Containers and virtual machines together provide great flexibility for deploying and managing applications.
Docker containers are everywhere on Linux, Windows, data centers, cloud servers, etc.