LXC(Linux Containers)

  • LXC 是一种开源的容器技术,它允许创建和管理容器。就像是用Lego积木搭建不同的东西一样,LXC允许创建、配置和运行容器,每个容器都是独立的、隔离的虚拟环境。其中Docker/Podman等容器技术,都是在LXC基础之上开发的三方工具。
  • LXC可以在操作系统层次上为进程提供虚拟的执行环境,一个虚拟的执行环境就是一个容器。可以为容器绑定特定的cpu和memory节点,分配特定比例的cpu时间、IO时间,限制可以使用的内存大小(包括内存和是swap空间),提供device访问控制,提供独立的namespace(网络、pid、ipc、mnt、uts)。

LCX基本概念

容器隔离

  • 容器隔离是指每个容器都像一个小房间一样,它们有自己的一套资源,如文件系统、进程、网络、用户权限等等。
  • 这意味着容器之间彼此独立,一个容器中的应用程序不能直接影响其他容器,就像在不同的房间里,不会因为在一间房间里弄脏了而影响到其他房间的整洁。

容器的共享

  • 尽管容器是相互隔离的,但它们可以共享主机操作系统的内核,这使得容器非常轻便。
  • 假设容器是一堆盒子,虽然盒子里的东西不会相互干扰,但它们共享同一个底座,这个底座就是主机操作系统。这样可以节省资源,因为不需要为每个容器都复制一个完整的操作系统。

容器存在的意义

  • 节约资源:相比于虚拟机,容器可以使用更少的资源来运行同样的应用程序或服务。这意味着可以在一台主机上同时运行更多的应用程序或服务,从而节约成本和资源。
  • 提高部署效率:容器可以快速地启动和停止,容器镜像可以被快速地构建和部署。这使得开发者和 IT 运维人员可以更快地部署新应用程序或服务。
  • 提高应用程序的可移植性:容器可以在不同的环境中运行,包括本地开发环境、测试环境和生产环境。这使得应用程序在不同的环境中都能够正常运行,从而提高了应用程序的可移植性。
  • 改善系统安全性:容器可以提供隔离和安全性,它们使用 Linux 内核的命名空间和控制组技术来隔离应用程序和服务之间的资源。这意味着即使一个容器受到攻击,也不会影响到其他容器或主机。