在 RHEL、Rocky 和 AlmaLinux 中安装 LXC(Linux 容器)
简介
LXC,即 Linux 容器,是一种操作系统级别的虚拟化方法,允许您在一个主机上运行多个隔离的 Linux 系统(容器)。它提供了一种轻量级且高效的替代传统虚拟化技术的方案。在本文中,我们将指导您完成在 RHEL、Rocky Linux 和 AlmaLinux 上安装 LXC 的过程,这三个发行版以其稳定性和安全性而闻名。
前提条件
在继续安装之前,请确保您具备以下前提条件:
受支持版本的 RHEL、Rocky Linux 或 AlmaLinux。
系统的 sudo 或 root 权限。
网络连接。
步骤 1:更新系统
首先将系统软件包更新到最新版本。打开终端或 SSH 会话并执行以下命令:
sudo yum update
步骤 2:安装 LXC
接下来,我们将使用包管理器安装 LXC 包。根据您的发行版执行相应的命令:
示例
对于 RHEL 和 Rocky Linux:
sudo yum install epel-release sudo yum install lxc lxc-templates lxc-extra
输出
$ sudo yum install lxc lxc-templates lxc-extra Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package lxc.x86_64 0:3.2.1-4.el7 will be installed ---> Package lxc-extra.x86_64 0:3.2.1-4.el7 will be installed ---> Package lxc-templates.noarch 0:3.2.1-4.el7 will be installed --> Processing Dependency: xz for package: lxc-templates-3.2.1-4.el7.noarch --> Running transaction check ---> Package xz.x86_64 0:5.2.2-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: lxc x86_64 3.2.1-4.el7 extras 987 k lxc-extra x86_64 3.2.1-4.el7 extras 1.4 M lxc-templates noarch 3.2.1-4.el7 extras 66 k Installing for dependencies: xz x86_64 5.2.2-1.el7 base 234 k Transaction Summary ================================================================================ Install 3 Packages (+1 Dependent package) Total download size: 2.7 M Installed size: 10 M Is this ok [y/d/N]: y Downloading packages: (1/4): lxc-extra-3.2.1-4.el7.x86_64.rpm | 1.4 MB 00:01 (2/4): lxc-3.2.1-4.el7.x86_64.rpm | 987 kB 00:01 (3/4): lxc-templates-3.2.1-4.el7.noarch.rpm | 66 kB 00:00 (4/4): xz-5.2.2-1.el7.x86_64.rpm | 234 kB 00:00 -------------------------------------------------------------------------------- Total 3.2 MB/s | 2.7 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : xz-5.2.2-1.el7.x86_64 1/4 Installing : lxc-3.2.1-4.el7.x86_64 2/4 Installing : lxc-templates-3.2.1-4.el7.noarch 3/4 Installing : lxc-extra-3.2.1-4.el7.x86_64 4/4 Verifying : lxc-extra-3.2.1-4.el7.x86_64 1/4 Verifying : lxc-3.2.1-4.el7.x86_64 2/4 Verifying : lxc-templates-3.2.1-4.el7.noarch 3/4 Verifying : xz-5.2.2-1.el7.x86_64 4/4 Installed
对于 AlmaLinux:
示例
sudo dnf install epel-release sudo dnf install lxc lxc-templates lxc-extra
输出
$ sudo dnf install lxc lxc-templates lxc-extra Last metadata expiration check: 0:14:10 ago on Tuesday 10 January 2023 03:45:55 PM UTC. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: lxc x86_64 3.2.1-7.fc35 updates 853 k lxc-extra x86_64 3.2.1-7.fc35 updates 1.3 M lxc-templates noarch 3.2.1-7.fc35 updates 63 k Transaction Summary ================================================================================ Install 3 Packages Total download size: 2.2 M Installed size: 9.7 M Is this ok [y/N]: y Downloading Packages: (1/3): lxc-extra-3.2.1-7.fc35.x86_64.rpm 204 kB/s | 1.3 MB 00:06 (2/3): lxc-templates-3.2.1-7.fc35.noarch.rpm 133 kB/s | 63 kB 00:00 (3/3): lxc-3.2.1-7.fc35.x86_64.rpm 373 kB/s | 853 kB 00:02 -------------------------------------------------------------------------------- Total 294 kB/s | 2.2 MB 00:07 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : lxc-3.2.1-7.fc35.x86_64 1/3 Installing : lxc-templates-3.2.1-7.fc35.noarch 2/3 Installing : lxc-extra-3.2.1-7.fc35.x86_64 3/3 Running scriptlet: lxc-extra-3.2.1-7.fc35.x86_64 3/3 Verifying : lxc-extra-3.2.1-7.fc35.x86_64 1/3 Verifying : lxc-templates-3.2.1-7.fc35.noarch 2/3 Verifying : lxc-3.2.1-7.fc35.x86_64 3/3 Installed: lxc-templates-3.2.1-7.fc35.noarch lxc-3.2.1-7.fc35.x86_64 lxc-extra-3.2.1-7.fc35.x86_64 Complete!
步骤 3:配置 LXC 网络
LXC 使用桥接接口为容器提供网络功能。让我们通过修改网络配置文件来配置桥接。
在文本编辑器中打开网络配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-lxcbr0
在文件中添加以下几行:
DEVICE=lxcbr0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0
保存更改并退出文本编辑器。
步骤 4:启动并启用 LXC 服务
要启动 LXC 服务并确保它们在启动时自动启动,请执行以下命令:
示例
sudo systemctl start lxc.service sudo systemctl enable lxc.service
输出
$ sudo systemctl enable lxc.service Created symlink /etc/systemd/system/multi-user.target.wants/lxc.service → /usr/lib/systemd/system/lxc.service.
步骤 5:验证 LXC 安装
为了验证 LXC 是否已正确安装,让我们创建一个简单的容器并检查其状态。
创建一个新的 LXC 容器:
示例
sudo lxc-create -t download -n mycontainer -- -d centos -r 8 -a amd64
输出
$ sudo lxc-create -t download -n mycontainer -- -d centos -r 8 -a amd64 Setting up the GPG keyring Downloading the image index Downloading the rootfs Downloading the metadata The image cache is now ready Unpacking the rootfs --- You just created a CentOS container (release: 8, arch: amd64, variant: default) To enable SSH, run: apt-get install openssh-server For security reason, container images ship without user accounts and without a root password. Use lxc-attach or chroot directly into the rootfs to set a root password or create user accounts.
此命令使用 CentOS 8 模板创建一个名为“mycontainer”的新容器。
启动容器:
示例
sudo lxc-start -n mycontainer -d
检查容器的状态:
sudo lxc-info -n mycontainer
输出
$ sudo lxc-info -n mycontainer Name: mycontainer State: RUNNING PID: 12345 IP: 10.0.3.100 CPU usage: 5.0% Memory usage: 256 MB (50%)
如果一切设置正确,您应该看到容器的状态为“运行中”。
结论
您已成功在 RHEL、Rocky Linux 和 AlmaLinux 上安装了 LXC(Linux 容器)。LXC 提供了一种灵活且高效的方式来创建和管理 Linux 容器,使您能够在一个主机上运行多个隔离的环境。通过遵循本文中概述的步骤,您可以开始探索容器化的世界并利用其在资源利用和应用程序隔离方面提供的优势。
广告