200字
Debian 13 (Trixie) 下 LXD 容器化实践与常用命令速查
2026-04-26
2026-04-26

记录日期:2026-04-26

环境:Debian GNU/Linux 13 (trixie) + LXD

用途:本地轻量级虚拟化子系统(类 WSL 体验)


一、硬件与系统环境

基于以下工作站环境进行部署:

项目

规格

主板

MAXSUN MS-Terminator B850M PRO

CPU

AMD Ryzen 5 7500F (6C12T, Zen 4, AVX2)

内存

64 GB DDR5

显卡

ZOTAC GeForce RTX 4060 Ti (NVIDIA 595.58.03)

系统盘

Samsung NVMe 128 GB (/dev/nvme0n1)

数据盘

Samsung SSD 870 EVO 250 GB (/dev/sda) — /home 挂载点

大容量存储

WD 1 TB HDD (/dev/sdb)

系统

Debian GNU/Linux 13 (trixie), Kernel 6.12.74

桌面

Cinnamon 6.4.10 (X11 + NVIDIA 闭源驱动)

网络

Realtek 2.5GbE + MediaTek MT7922 Wi-Fi 6E


二、部署背景

在 Linux 宿主机上需要一套轻量级、秒级启动的隔离 Linux 子系统,用于:

  • 快速测试不同发行版环境(Debian、Ubuntu、Alpine 等)

  • 隔离开发/编译环境,避免污染宿主系统

  • 与宿主机共享内核,资源开销远低于 KVM 全虚拟化

选择 LXD(Linux Container Daemon)而非 Docker,因为 LXD 提供完整的操作系统级容器体验,更接近 WSL2 的用法——有独立的 systemd、可运行后台服务、支持快照和完整文件系统操作。


三、存储池规划

系统盘 / 仅 128 GB 且已使用 63.5%,因此将 LXD 的 default 存储池直接定向到外部大容量磁盘,避免容器镜像和快照挤占系统分区。

# 存储池状态
$ lxc storage list
+---------+--------+-----------------------+-------------+---------+---------+
|  NAME   | DRIVER |        SOURCE         | DESCRIPTION | USED BY |  STATE  |
+---------+--------+-----------------------+-------------+---------+---------+
| default | dir    | /mnt/data/lxd-storage |             | 1       | CREATED |
+---------+--------+-----------------------+-------------+---------+--------+

关键配置

  • Driver: dir — 简单可靠,无需额外文件系统特性

  • Source: /mnt/data/lxd-storage — 数据完全落在外部磁盘

  • 网络: lxdbr0 桥接 + NAT,容器可自动访问外网


四、LXD 常用命令速查

4.1 实例生命周期

操作

命令

创建并启动容器

lxc launch images:debian/12 <名>

创建虚拟机

lxc launch images:ubuntu/24.04 <名> --vm

仅创建不启动

lxc init images:alpine/3.19 <名>

启动

lxc start <名>

停止

lxc stop <名>

强制停止

lxc stop <名> --force

重启

lxc restart <名>

暂停/恢复

lxc pause <名> / lxc resume <名>

删除(需先 stop)

lxc delete <名>

强制删除(含运行中)

lxc delete <名> --force

重命名

lxc rename <旧名> <新名>

复制实例

lxc copy <源> <新名>

移动/迁移

lxc move <旧> <新>

查看列表

lxc list

精简列表(仅名称)

lxc list -c n --format csv

查看详情

lxc info <名>

实时监控资源

lxc top

4.2 进入实例与执行命令

操作

命令

进入交互式 Shell

lxc exec <名> -- bash

进入 Alpine(sh)

lxc exec <名> -- sh

单条命令

lxc exec <名> -- apt update

以 root 身份执行

lxc exec <名> -- sudo apt install vim

使用宿主机环境变量

lxc exec <名> -- env \| grep PATH

4.3 文件传输

操作

命令

宿主机 → 容器

lxc file push <本地路径> <名>/<容器路径>

容器 → 宿主机

lxc file pull <名>/<容器路径> <本地路径>

递归推送目录

lxc file push -r ./project <名>/root/project

创建空文件

lxc file edit <名>/etc/myconfig

查看容器内文件内容

lxc file cat <名>/etc/os-release

4.4 快照管理

操作

命令

创建快照

lxc snapshot <名>

命名快照

lxc snapshot <名> <快照名>

查看快照

lxc info <名>

恢复快照

lxc restore <名> <快照名>

删除快照

lxc delete <名>/<快照名>

从快照创建新实例

lxc copy <名>/<快照名> <新实例名>

导出快照为镜像

lxc publish <名>/<快照名> --alias my-image

4.5 备份与迁移

操作

命令

导出实例为 tar.gz

lxc export <名> ./backup.tar.gz

导出含快照

lxc export <名> ./backup.tar.gz --instance-only=false

导入实例

lxc import ./backup.tar.gz --new-name <新名>

导出为镜像

lxc publish <名> --alias my-image

导出到远程服务器

lxc export <名> backup.tar.gz --compression=bz2

4.6 网络配置

操作

命令

查看网络列表

lxc network list

查看网桥详情

lxc network show lxdbr0

查看容器 IP

lxc list <名> -c n,t,4

端口转发(宿主机 → 容器)

lxc config device add <名> myport proxy listen=tcp:0.0.0.0:8080 connect=tcp:127.0.0.1:80

删除端口转发

lxc config device remove <名> myport

添加第二个网卡

lxc config device add <名> eth1 nic network=macvlan-net name=eth1

固定容器 IP

lxc config device set <名> eth0 ipv4.address=10.0.8.100

查看容器网络接口

lxc exec <名> -- ip addr

4.7 存储管理

操作

命令

查看存储池

lxc storage list

查看池详情

lxc storage show default

查看池使用

lxc storage info default

创建新存储池

lxc storage create <池名> dir source=/mnt/data

创建自定义卷

lxc storage volume create default my-vol 10GB

挂载卷到容器

lxc config device add <名> my-vol disk pool=default source=my-vol path=/mnt/data

挂载宿主机目录

lxc config device add <名> host-data disk source=/home/wuqiyang/data path=/host

设置磁盘限额

lxc config device set <名> root size=20GB

迁移实例到新池

lxc move <名> <名>-tmp --storage <新池>

4.8 资源限制

操作

命令

限制 CPU 核数

lxc config set <名> limits.cpu=2

限制 CPU 优先级

lxc config set <名> limits.cpu.priority=10

限制内存

lxc config set <名> limits.memory=1GB

限制内存+交换

lxc config set <名> limits.memory=512MB limits.memory.swap=256MB

限制进程数

lxc config set <名> limits.processes=500

限制磁盘 I/O

lxc config set <名> limits.disk.priority=5

限制网络带宽

lxc config device set <名> eth0 limits.max=100Mbit

查看资源使用

lxc info <名>

4.9 配置管理

操作

命令

查看实例配置

lxc config show <名>

查看精简配置

lxc config show <名> --expanded

设置环境变量

lxc config set <名> environment.MY_VAR=value

设置开机自启

lxc config set <名> boot.autostart 1

设置启动优先级

lxc config set <名> boot.autostart.priority 10

设置延迟启动

lxc config set <名> boot.autostart.delay 10

启用嵌套 Docker

lxc config set <名> security.nesting true

启用特权模式

lxc config set <名> security.privileged true

查看 Profile

lxc profile show default

应用 Profile

lxc profile add <名> <profile名>

编辑配置(交互式)

lxc config edit <名>

4.10 镜像管理

操作

命令

搜索镜像

lxc image list images: debian/12

查看本地镜像

lxc image list

删除镜像

lxc image delete <指纹>

从容器创建镜像

lxc publish <名> --alias my-image

导出镜像

lxc image export my-image ./

导入镜像

lxc image import ./tarball.tar.gz --alias my-image

查看镜像详情

lxc image show my-image

刷新镜像缓存

lxc image refresh <别名>

4.11 日志与调试

操作

命令

查看实例日志

lxc info <名> --show-log

查看控制台日志

sudo cat /var/lib/lxd/logs/<名>/console.log

查看 LXD 守护进程日志

sudo journalctl -u lxd -f

查看事件流

lxc monitor

查看操作进度

lxc operation list

4.12 批量操作技巧

# 批量停止所有容器
lxc stop --all
​
# 批量删除所有停止的容器
lxc list -c n --format csv | xargs -I {} lxc delete {}
​
# 批量执行命令
for c in $(lxc list -c n --format csv); do
  lxc exec $c -- apt update
done
​
# 批量导出备份
for c in $(lxc list -c n --format csv); do
  lxc export $c ./backup-${c}.tar.gz
done

4.13 远程服务器管理

# 添加远程 LXD 服务器
lxc remote add my-server https://192.168.1.100:8443 --accept-certificate
​
# 查看远程实例
lxc list my-server:
​
# 从远程复制实例到本地
lxc copy my-server:instance-name local-instance
​
# 配置默认远程
lxc remote switch my-server

五、注意事项

  1. 外部磁盘不可随意卸载:容器运行时 /mnt/data 被占用,卸载会导致容器崩溃。维护前务必 lxc stop --all

  2. dir 驱动快照是全量复制:快照会快速消耗外部磁盘空间,建议定期清理或改用 btrfs/zfs 后端以支持写时复制(CoW)。

  3. fstab 开机顺序:确保外部磁盘在 LXD 服务启动前完成挂载。若为网络存储,需加 _netdev 参数。

  4. NVIDIA GPU 直通:本机搭载 RTX 4060 Ti,如需在容器内使用 CUDA,可通过 lxc config device add <名> gpu gpu 直通 GPU 设备。


六、参考


本文档由系统环境信息自动生成,用于个人技术备忘与博客归档。

Debian 13 (Trixie) 下 LXD 容器化实践与常用命令速查
作者
WuQingYang
发表于
2026-04-26
License
CC BY-NC-SA 4.0