容器技术与运行时虚拟化全解析
1 容器管理与替代方案
在容器中,PID 1 扮演着重要角色,它要像一个称职的父进程一样,在子进程终止时知道该采取什么行动。当在容器内运行多个服务或任务时,例如为某个作业服务器运行多个工作进程,除了使用脚本启动它们,还可以考虑使用进程管理守护程序,如 Supervisor(supervisord)来启动和监控这些进程。这样做不仅能提供必要的系统功能,还能让你对服务进程有更多的控制权。
1.1 LXC 容器技术
虽然 Docker 是构建容器镜像最流行的系统,且易于上手并能快速进入容器提供的隔离层,但还有其他创建容器的方案,LXC 就是其中历史最悠久的之一。实际上,Docker 的早期版本是基于 LXC 构建的。
LXC 有时指的是使容器成为可能的一组内核特性,但大多数人用它来特指一个包含多个用于创建和操作 Linux 容器实用工具的库和软件包。与 Docker 不同,LXC 需要大量的手动设置,比如要自己创建容器网络接口,还要提供用户 ID 映射。
最初,LXC 旨在让容器内尽可能模拟一个完整的 Linux 系统,包括 init 进程。安装特定版本的发行版后,你可以在容器内安装运行所需的一切。这与 Docker 有相似之处,但 LXC 的设置更繁琐,而 Docker 只需下载一堆文件就可以开始使用。
不过,LXC 在适应不同需求方面可能更灵活。例如,默认情况下,LXC 不使用 Docker 中常见的覆盖文件系统,但你可以添加。由于 LXC 基于 C API 构建,必要时你可以在自己的软件应用中利用这种细粒度的控制。此外,还有一个名为 LXD 的管理包,它可以帮助你处理 LXC 中一些精细
超级会员免费看
订阅专栏 解锁全文
76

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



