在 RHEL、Rocky 和 AlmaLinux 中安装 LXC(Linux 容器)在 RHEL、Rocky 和 AlmaLinux 中安装 LXC(Linux 容器)在 RHEL、Rocky 和 AlmaLinux 中安装 LXC(Linux 容器)在 RHEL、Rocky 和 AlmaLinux 中安装 LXC(Linux 容器)
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 RHEL、Rocky 和 AlmaLinux 中安装 LXC(Linux 容器)

发表 admin at 2025年2月28日
类别
  • 未分类
标签
コアサーバーV2プランご契約でドメイン更新費用が永久無料

LXD 被描述为下一代容器和虚拟机管理器,为在容器内运行或作为虚拟机运行的 Linux 系统提供沉浸式体验。

它为大量 Linux 发行版提供映像,并支持多种存储后端和网络类型。它还提供了在个人 PC/笔记本电脑甚至云实例上安装映像的选项。

LXD 允许您使用三种方式管理容器和虚拟机。您可以利用 lxc 客户端或命令行工具、REST API,甚至第三方集成。

LXD特点

值得注意的 LXD 功能包括:

  • LXD 基于映像,包含适用于多种 Linux 发行版的映像。
  • 它的构建将安全性作为首要任务。
  • 它提供了 REST API 和 lxc 命令行工具来与容器交互。
  • 它为各种存储后端、存储卷和存储池提供支持。
  • 网络管理是通过创建桥接网络和跨主机隧道来实现的。
  • 对 CPU、RAM、磁盘使用、块 I/O 和内核资源等资源的高级控制。
  • 灵活且可扩展——您可以在PC上部署容器并配置一个集群,该集群可以在各个节点上聚合数千个容器。

什么是LXC?

不要与LXD提供的lxc命令行客户端工具混淆,LXC(Linux Container)是一种流行的操作系统级虚拟化技术,它使用强大的API和其他工具,使用户能够在单个主机中无缝创建和管理容器和虚拟机。它包括模板、工具语言和库绑定。

LXC特点

LXC 利用以下内核功能来处理进程:

  • 内核命名空间:pid、mount、uts network 和 user。
  • CGroups(对照组)。
  • Chroots – 使用pivot_root。
  • Seccomp 政策。
  • SELinux 和 Apparmor 配置文件。

Linuxcontainers.org 是 LXD 和 LXC 背后的伞式项目。其目标是为 Linux 容器技术提供一个发行版和供应商中立的平台。

介绍完毕后,我们现在将演示如何在基于 RHEL 的 Linux 发行版(例如 CentOS、Rocky Linux、<)上创建和管理 LXC 容器。 和 AlmaLinux。

要求

一个运行最少安装的 Linux 操作系统:

  • RHEL Linux 的安装
  • CentOS Linux 的安装
  • 安装Rocky Linux
  • AlmaLinux的安装

第 1 步:将 SELinux 设置为宽容模式

立即,我们将首先配置 SELinux 并将其设置为宽松。但在此之前,让我们按如下方式更新系统软件包:

sudo dnf update

要将 SELinux 设置为宽松,请执行以下命令:

sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

要使其生效,请重新启动服务器。

sudo reboot

并确认SELinux的状态。

getenforce

第 2 步:安装 EPEL 存储库

EPEL 是 Fedora 项目 的一个存储库,为 RedHat Enterprise Linux 和其他基于 RHEL 的发行版提供了一组高质量的软件包。

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
sudo yum install epel-release

第三步:添加内核参数

在我们安装LXD之前,需要一些额外的参数。因此切换到root用户:

su -

并添加参数如下。

grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)"
echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf

参数到位后,继续并启用捕捉。

第 4 步:安装并启用 Snap

在 RHEL 8 上安装 LXD 最简单的方法是将其安装为 snap 软件包。但首先,让我们安装snap,如下所示。

sudo dnf install snapd

这将安装 snapd 守护进程或服务以及其他 Python 依赖项,如图所示。

安装 snap 后,继续并启用主 snap 通信套接字。

sudo systemctl enable --now snapd.socket

此外,通过创建从 /var/lib/snapd/snap 到 /snap 的符号链接来启用经典支持。

sudo ln -s /var/lib/snapd/snap  /snap

要更新快照路径,请重新启动系统。

sudo reboot

第5步:安装LXD容器化管理器

从快照安装LXD有两种方法。您可以安装最新版本的LXD,如图所示。

sudo snap install —-classic lxd

或者,您可以安装最新的稳定LTS版本,如下所示:

sudo snap install lxd --channel=4.0/stable

为了能够在不切换到 sudo 用户的情况下执行 lxc 命令,请将当前登录的用户添加到 lxd 组中。

sudo usermod -aG lxd $USER

通过列出用户所属的所有组来验证用户是否已添加到 lxd 组中。

groups tecmint

接下来,运行 newgrp 命令,如下所示。

newgrp lxd

该命令在登录会话期间更改当前组 ID。它将当前组 ID 设置为命名组,即 lxd。

第6步:初始化LXD环境

在开始创建和管理LXD容器之前,我们需要通过运行命令来初始化LXD环境。

lxc init

接下来是一系列提示,允许您设置环境。默认值就可以正常工作,但请随意指定您自己的首选项。

我们创建了一个名为 tec-pool 的存储池,并使用 lvm 选项作为后端。

要验证您刚刚配置的 LXD 环境,您可以使用许多命令。例如,要显示默认的 LXD 配置文件,请执行:

lxc profile show default

要显示网络适配器以及 IPv4 和 IPv6 地址,请运行:

lxc network list

您可以进一步缩小范围并显示有关 lxdbr0 接口的更详细信息,如下所示。

lxc network show lxdbr0

您还可以验证存储池。

lxc storage list

您可以进一步获取有关存储池的复杂详细信息。

lxc storage show tec-pool

要列出正在运行的 lxc 容器,请运行以下命令:

lxc list

目前,我们还没有任何正在运行的容器。因此,您将得到一个仅包含列标签的空表。

第 7 步:列出预构建的 LXC 容器镜像

就像Docker一样,LXC平台提供了一个预构建映像的存储库,您可以从中创建容器。要列出所有操作系统(包括虚拟机)的所有预构建映像,请运行以下命令:

lxc image list images: 

这填充了所有操作系统的容器映像和虚拟机的巨大列表。要缩小范围到特定的 Linux 发行版,请使用以下语法:

lxc image list images: grep -i os-type

例如,要搜索 Rocky Linux 的可用映像,请运行以下命令:

lxc image list images: grep -i rocky

如果您正在搜索 Debian 映像,请运行以下命令:

lxc image list images: grep -i debian

第 8 步:启动 LXC 容器

要启动 lxc 容器,请使用以下语法:

lxc launch images:{distro}/{version}/{arch} {container-name-here}

在这里,我们将启动 2 个容器:来自 Debian 10 的 tec-container1 和来自 Rocky Linux 8 的 tec-container2 。

lxc launch images:debian/10/amd64 tec-container1
lxc launch images:rockylinux/8/amd64 tec-container2 

要列出 lxc 容器,请执行以下命令:

lxc list

输出显示有关容器的大量信息。这包括容器的名称、状态(无论是运行还是停止)、IPv4 和 IPv6 地址、类型(无论是容器还是虚拟机)以及多个快照。

要仅列出正在运行的容器,请运行以下命令:

lxc list | grep -i running

同样,对于停止的容器,执行:

lxc list | grep -i stopped

您可以使用以下命令探测容器的信息和指标,例如正在运行的进程、CPU 和内存利用率以及带宽等:

lxc info tec-container1 

第 9 步:获得对 LXC 容器的 Shell 访问权限

您可以使用以下语法获得对容器的 bash 访问权限:

lxc exec container-name  name-of-the-shell

要获得对 tec-container1 的 shell 访问权限,我们将运行以下命令:

lxc exec tec-container1 bash

获得 shell 访问权限后,您可以通过运行常见的 shell 命令(包括更新系统)开始以 root 用户身份与容器交互,如下所示:

apt update

要退出容器,请运行以下命令:

exit

或者,您可以使用以下格式直接在容器上执行命令,而无需访问 shell:

lxc exec container-name command

例如,您可以运行以下命令来更新软件包列表、检查 Debian 容器上运行的操作系统版本并检查日期。

lxc exec tec-container1 apt update
lxc exec tec-container1 cat /etc/debian_version
lxc exec tec-container1 date

第 10 步:将文件拉取/推送到 LXC 容器

您可以执行的另一个操作是将文件传输到容器或从容器传输文件。为了演示这一点,我们将在 LXD 容器中创建一个新目录并导航到其中。

mkdir data && cd data

接下来,我们将创建一个示例文件并添加一些数据。为此,我们将使用 vim 编辑器创建一个示例文件

vim file1.txt

接下来,我们将输入一些示例文本并保存文件。

Hello World, Welcome to LXD containers.

要将文件从容器拉取到本地主机系统,我们将使用以下语法:

lxc file pull {container-name}/{path/to/file} {/path/to/local/dest}

在这种情况下,命令将是:

lxc file pull tec-container2/root/data/file1.txt /home/tecmint

要将文件从本地目录推送或复制到容器,请使用以下语法:

lxc file push {/path/to/file} {container-nane} /path/to/dest/dir/

在本例中,我们在主目录中有一个名为 file2.txt 的示例文件,该文件被复制到 tec-container2< 中的 /root/data/ 路径。 容器。

lxc file push /home/tecmint/file2.txt tec-container2/root/data/

为了确认容器中文件的存在,我们将运行:

lxc exec tec-container2 ls /root/data

第11步:停止/启动/重新启动和删除LXC容器

使用lxc命令行实用程序,您可以执行容器管理任务,例如停止、启动、重新启动和删除容器。

要停止 lxc 容器,请使用以下语法:

lxc stop container-name

例如,要停止 tec-container1,我们将运行以下命令:

lxc stop tec-container1

要启动 lxc 容器,请使用以下语法:

lxc start container-name

例如,要启动 tec-container1,我们将执行:

lxc start tec-container1

要重新启动两个 lxc 容器,我们将运行以下命令:

lxc restart tec-container1
lxc restart tec-container2

要删除 lxc 容器,您必须首先停止该容器,然后将其删除。例如,要删除,我们将运行以下命令:

lxc stop tec-container1
lxc delete tec-container1

或者,您可以将这两个命令组合起来,如图所示。

lxc stop tec-container1 && lxc delete tec-container1

步骤 12:获取有关 LXC 命令行选项的帮助

要获取有关 LXC 提供的其他命令选项的帮助,只需运行以下命令:

lxc --help
OR
lxc command --help e.g
lxc file --help

结论

这是对 LXD 容器以及如何使用 lxc 命令行实用工具创建和管理它们的深入探讨。我们相信您会发现本指南很有帮助。

©2015-2025 Norria support@alaica.com