- 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.
推薦閱讀
- Redis入門指南(第3版)
- 劍指Offer(專項突破版):數據結構與算法名企面試題精講
- Web Scraping with Python
- 深入淺出Android Jetpack
- 概率成形編碼調制技術理論及應用
- Building Serverless Applications with Python
- 好好學Java:從零基礎到項目實戰
- Julia 1.0 Programming Complete Reference Guide
- 從Excel到Python數據分析:Pandas、xlwings、openpyxl、Matplotlib的交互與應用
- 監控的藝術:云原生時代的監控框架
- Django Design Patterns and Best Practices
- 編程的原則:改善代碼質量的101個方法
- Python量子計算實踐:基于Qiskit和IBM Quantum Experience平臺
- Python大數據與機器學習實戰
- Natural Language Processing with Java Cookbook