- Hands-On Kubernetes on Windows
- Piotr Tylenda
- 279字
- 2021-06-24 16:53:55
Docker containerization on Linux
Originally, Docker Engine was developed primarily for the Linux OS, which provides the following kernel features for the Docker runtime:
- Kernel namespaces: This is the core concept for containers and makes it possible to create isolated process workspaces. Namespaces partition kernel resources (such as network stacks, mount points, and so on) so that each process workspace can access its own set of resources and ensures they can't be accessed by processes from other workspaces. This is what ensures the isolation of containers.
- Control groups: Resource usage limits and isolation is a secondary core concept in containerization. On Linux, this feature is provided by cgroups, which enables resource limiting (CPU usage, RAM usage, and so on) and priority access to resources for one process or a group of processes.
- Layer filesystem capabilities: On Linux, UnionFS is one of the many implementations of union mount – a file system service that allows files and directories coming from separate filesystems to be unified into one transparent, coherent filesystem. This feature is crucial for Docker container images that consist of immutable layers. During the container runtime, the read-only layers are transparently overlaid together with a writable container layer.
Docker Engine is responsible for providing a basic runtime for containers, abstracting container management, and exposing functionalities using the REST API to the client layer, such as the Docker CLI. The architecture of Docker on Linux can be summarized with the following diagram:
From a Linux OS perspective, the container runtime architecture is presented in the following diagram. This architecture applies to container engines on Linux in general, not only Docker:
Next, we will look at Docker containerization on Windows.
推薦閱讀
- 大學(xué)計(jì)算機(jī)基礎(chǔ)(第二版)
- Designing Machine Learning Systems with Python
- Learn Type:Driven Development
- Apache Spark 2.x for Java Developers
- Instant PHP Web Scraping
- 編寫高質(zhì)量代碼:改善Objective-C程序的61個(gè)建議
- C++程序設(shè)計(jì)教程(第2版)
- 大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(Windows 7+Office 2010)(IC3)
- IBM RUP參考與認(rèn)證指南
- 基于MATLAB的控制系統(tǒng)仿真及應(yīng)用
- 從零開始學(xué)Unity游戲開發(fā):場(chǎng)景+角色+腳本+交互+體驗(yàn)+效果+發(fā)布
- Oracle SOA Suite 12c Administrator's Guide
- Node.js Web Development
- Java網(wǎng)絡(luò)編程實(shí)用精解
- 狼書(卷2):Node.js Web應(yīng)用開發(fā)