继续套娃🪆云服务器安装LXD

继续套娃🪆云服务器安装LXD

 次点击
31 分钟阅读

买了台云服务器12核12G,只跑一些应用的话太浪费了,上次使用docker来实现虚拟化占用还是太高了,不够轻度,了解到lxc和lxd功能也能实现。

1. LXC、LXD、Docker那个好

LXC 是底层容器运行时与基础工具集,LXD 是基于 LXC 的高级容器管理系统(轻量级容器管理程序 /hypervisor),提供更友好的用户体验、REST API、集群能力和企业级特性。

LXC 是容器技术的基础,提供了操作系统级虚拟化的核心能力;LXD 则是在此基础上构建的现代化管理平台,降低了容器使用门槛,扩展了企业级功能。简单来说,LXC 是引擎,LXD 是带仪表盘、方向盘和导航系统的完整汽车。

LXD 更适合运行完整的系统级服务 / 应用栈,Docker 更适合打包单进程微服务,二者没有绝对的 “好坏”,核心取决于你的业务场景和技术需求。

LXD 和 Docker 都是 Linux 容器技术,但设计目标、架构和适用场景差异极大,下面从多个维度详细对比。

特性

LXD

Docker

定位

轻量级虚拟机管理程序(Hypervisor),主打系统容器

应用容器引擎,主打单进程应用容器

设计目标

模拟完整的 Linux 系统环境,支持运行多进程服务栈

构建、打包、分发单个应用,实现 “一次构建,处处运行”

容器类型

系统容器(接近虚拟机,可运行 init 进程)

应用容器(通常只运行一个前台进程)

镜像理念

基于完整的 Linux 发行版镜像(如 Ubuntu、CentOS 完整系统)

基于分层镜像,精简到仅包含应用运行所需依赖

典型适用场景

适合用 LXD 的场景

  1. 替代虚拟机:需要运行完整 Linux 系统,且对资源开销敏感(LXD 容器比 KVM 虚拟机更轻量)。

  2. 多服务部署:单容器内运行多个关联服务(如 Web 服务器 + 数据库 + 缓存),模拟生产环境整机。

  3. 系统级测试:测试操作系统补丁、内核特性、多服务协同工作的场景。

  4. 物理机迁移:需要将物理机 / 虚拟机无缝迁移到容器环境,或跨节点迁移容器。

  5. 资源敏感的基础设施:嵌入式系统、边缘计算设备,需要低开销的系统隔离。

适合用 Docker 的场景

  1. 微服务架构:将应用拆分为独立微服务,每个服务打包成一个容器,便于独立部署和扩缩容。

  2. 持续集成 / 持续部署(CI/CD):应用打包成镜像后,可在开发、测试、生产环境无缝流转。

  3. 单应用分发:快速部署单个应用(如 Nginx、Redis、MySQL),直接拉取官方镜像启动。

  4. 云原生部署:对接 Kubernetes 等云原生编排平台,实现应用的自动扩缩容、故障自愈。

2. LXD安装

宿主机推荐使用Ubuntu(尤其是 LTS 版本),其次是 Debian,由于 LXD 本身就是由 Canonical 公司(Ubuntu 的母公司)主导开发的,因此在 Ubuntu 上,LXD 具有最高的兼容性、最快的更新速度以及最完善的文档支持;首选推荐:Ubuntu 22.04 / 24.04 LTS。

宿主机配置建议表

硬件/软件项

推荐配置

原因

操作系统

Ubuntu 22.04 LTS

最佳兼容性与支持

文件系统

ZFS

支持即时快照、压缩和磁盘配额,性能优秀

安装方式

Snap (snap install lxd)

官方推荐,版本更新最快

虚拟化支持

开启 VT-x / AMD-V

若要运行 LXD 虚拟机(VM)则必须开启

Ubuntu 24.04 LTS安装LXD

Ubuntu 24.04默认已经自带了LXD环境,一般是5.0.x的LXD LTS长期稳定版,使用lxc version可以查看版本,但是还是建议升级到最新稳定版。

# 更新软件包列表(必须先执行这一步)
sudo apt update

# 安装 ZFS 工具
sudo apt install zfsutils-linux -y

# 切换到最新稳定版
sudo snap refresh lxd --channel=latest/stable

LXD初始化,初始化的时候会问较多的选项,保持默认即可,也可以自行翻译配置比较重要的几个选项。

sudo lxd init
  • 当问到 What storage backend would you like to use? 时: 输入 zfs

  • 当问到 Create a new ZFS pool? 时: 选择 yes

  • 当问到 Would you like to use an existing empty block device? 时:

    • 如果你有空余硬盘,选 yes

    • 如果你只想在当前系统磁盘里分出一块空间,选 no,然后指定一个大小(例如 20GiB),LXD 会创建一个虚拟的磁盘文件来运行 ZFS。

3. 访问WEB控制台

# 8443端口任意修改
lxc config set core.https_address :8443

# 为了确保配置生效,建议重启一下 LXD 守护进程
sudo snap restart lxd

# 访问 Web 界面
https://你的服务器IP:8443

4. 常见问题

一、开机之后lxd容器无法获取IP地址?

防火墙需要设置,放通网桥流量。

ufw allow in on lxdbr0
ufw route allow in on lxdbr0
ufw route allow out on lxdbr0

# 重启lxd
systemctl restart snap.lxd.daemon  # 如果是 snap 安装的
# 或者
systemctl restart lxd

二、创建端口转发

1.记住容器的IP地址

2.在WEB UI选择networking

2026-01-14-xhowaceh.png

3.找到lxdbr0或者自定义的桥接lxd网卡

2026-01-14-arjolhmc.png

4.找到Create forward

2026-01-14-mdnxpdnd.png

这样即可通过访问宿主机的5223端口转发到容器的22端口

© 本文著作权归作者所有,未经许可不得转载使用。