容器技术与Docker入门指南
1. 容器概述
容器共享基础操作系统内核以及特定应用程序运行所需的共享库和二进制文件。应用程序被封装在容器内,与系统的其他部分隔离,并且与主机共享网络接口,以提供类似于虚拟机(VM)的连接性。容器运行在容器引擎之上,容器引擎提供操作系统级别的虚拟化,仅使用必要的库和依赖项来部署和测试应用程序,确保应用程序在任何机器上都能按照开发者的预期运行。
容器化技术由来已久,自1982年Unix系统开始就使用chroot进行容器化。在Linux系统中,常用的容器工具有Linux容器(LXC)及其扩展版本LXD(2008年引入),以及2013年引入的Docker。
2. 容器底层技术
2.1 Linux容器(LXC)
LXC是早期的容器形式之一,它使用多种编程语言的API,如Python 3、Go、Ruby和Haskell,虽然现在不太流行,但仍值得了解。截至目前,有两个受支持的版本:4.0版本支持到2025年6月,5.0版本支持到2027年6月。
LXC使用内核技术创建一个与默认Linux安装尽可能接近的隔离环境,其中最重要的是内核命名空间(namespaces)和控制组(cgroups),此外还有chroots以及AppArmor和SELinux的安全配置文件。
2.2 Linux命名空间(namespaces)
命名空间是内核全局系统资源,负责容器提供的隔离功能。它将全局系统资源包装在一个抽象层中,使运行在命名空间内的应用程序进程认为它使用的资源是自己的。命名空间在逻辑层面提供隔离,并为运行的进程提供可见性。
Linux内核中
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



