📜  Linux 虚拟化:Linux 容器 (lxc)(1)

📅  最后修改于: 2023-12-03 15:32:42.451000             🧑  作者: Mango

Linux 虚拟化:Linux 容器 (LXC)

简介

Linux 容器(LXC)是一个操作系统层面的虚拟化技术,可以在单个 Linux 系统上运行多个隔离的系统或应用程序。每一个 LXC 容器都像一个独立的 Linux 系统,拥有自己的命名空间、进程、文件系统和网络接口。LXC 可以提供较好的性能和资源利用率,同时,相对于传统的虚拟化技术如 KVM,LXC 消耗的资源更少。

原理

LXC 基于 Linux 的 Namespace 和 CGroups 机制实现容器隔离。Namespace 可以将进程的视图隔离成不同的虚拟环境,例如隔离网络、文件系统、进程等。而 CGroups 可以控制进程的资源使用,例如 CPU、内存、磁盘等。

在 LXC 中,每个容器都有自己的初始化进程,也就是一个容器的 PID 为 1 的进程,通常是一个 init 程序。容器内的进程都运行在该初始化进程的子进程中,这些进程被限制在所属容器的 Namespace 和 CGroups 中。容器与宿主机共享 Linux 内核,因此 LXC 不需要使用虚拟机监控程序来管理容器内的进程。在宿主机上,可以使用 LXC 工具来管理容器,例如创建、启动、停止、销毁容器。

安装

LXC 通常随着 Linux 发行版一起安装,如果需要手动安装,可以使用以下命令:

Ubuntu/Debian:

sudo apt-get install lxc

CentOS/Fedora:

sudo yum install epel-release
sudo yum install lxc

ArchLinux:

sudo pacman -S lxc
使用
创建容器

可以使用 LXC 工具包管理容器。使用以下命令来创建一个新容器:

sudo lxc-create -n my-container -t debian

这个命令将会创建一个名为 my-container 的容器,容器使用的镜像是 Debian。LXC 工具包自带了一些想用的镜像,包括 Debian、Ubuntu、CentOS 等。也可以使用其他镜像,例如 Alpine。

启动容器

容器创建完毕后,需要启动容器。使用以下命令启动容器:

sudo lxc-start -n my-container

或者:

sudo lxc-start -n my-container -d

第一种方式将会在控制台启动容器,第二种方式则会将容器后台执行。

进入容器

使用以下命令可以进入一个已经启动的容器:

sudo lxc-attach -n my-container

如果要退出容器,可以使用 exit 命令。

停止容器

使用以下命令可以停止容器:

sudo lxc-stop -n my-container
销毁容器

使用以下命令可以销毁容器:

sudo lxc-destroy -n my-container
总结

Linux 容器是一个高效、轻量级的虚拟化技术,可以在同一个 Linux 系统上运行多个隔离的系统或应用程序。LXC 基于 Namespace 和 CGroups 实现容器隔离,可以提供较好的性能和资源利用率。在使用 LXC 时,可以使用 LXC 工具包管理容器,包括创建、启动、停止、销毁容器等功能。