LXD 常用命令速查手册
一份为开发者和运维人员准备的 LXD 核心命令清单,包含大量快捷命令,助你高效管理容器与虚拟机。
1. 实例管理 (Instance)
创建与启动
启动一个 Ubuntu 24.04 容器,并命名为 my-ubuntu。
lxc launch images:ubuntu/24.04 my-ubuntu启动一个 Debian 12 虚拟机。
lxc launch images:debian/12 my-debian-vm --vm启动容器并应用指定的 profile。
lxc launch images:alpine/edge my-alpine -p default -p macvlan启动并直接配置资源。
lxc launch images:ubuntu/24.04 web-server -c limits.cpu=2 -c limits.memory=1GiB查看与列出
查看所有实例的简略信息。
lxc list使用正则表达式过滤名称。
lxc list "web-*"自定义输出列 (n:名字, s:状态, 4:IPv4, P:profile, t:类型)。
lxc list -c n,s,4,P,t执行命令与交互
在容器内获取一个交互式 bash shell。
lxc exec my-ubuntu -- bash运行单个命令,例如更新包列表。
lxc exec my-ubuntu -- apt update获取虚拟机的控制台访问权限。
lxc console my-debian-vm生命周期管理
启动实例。
lxc start my-ubuntu停止实例。
lxc stop my-ubuntu重启实例。
lxc restart my-ubuntu暂停实例 (冻结状态)。
lxc pause my-ubuntu删除实例 (必须先停止)。
lxc delete my-ubuntu强制删除 (无需停止)。
lxc delete my-ubuntu --force文件传输
推送单个文件到实例。
lxc file push ./local.conf my-ubuntu/etc/nginx/nginx.conf从实例拉取单个文件。
lxc file pull my-ubuntu/var/log/syslog .递归推送整个目录。
lxc file push -r ./my-app my-ubuntu/opt/2. 镜像管理 (Image)
查找与列出
列出本地已下载的镜像。
lxc image list在 `images` 远程仓库中搜索包含 "ubuntu" 的镜像。
lxc image search images:ubuntu导入与导出
从远程仓库复制一个镜像到本地,并设置别名。
lxc image copy images:ubuntu/24.04 local: --alias my-ubuntu-24.04将现有实例发布为新镜像。
lxc publish my-ubuntu --alias clean-ubuntu维护
为镜像创建或修改别名。
lxc image alias create u24 my-ubuntu-24.04删除本地镜像。
lxc image delete my-ubuntu-24.043. 网络配置 (Network)
网络管理
列出所有网络。
lxc network list查看默认桥接网络 `lxdbr0` 的详细信息。
lxc network show lxdbr0在交互模式下编辑网络配置。
lxc network edit lxdbr0实例网络配置
为实例 `my-ubuntu` 设置静态 IPv4 地址。
lxc config device set my-ubuntu eth0 ipv4.address 10.0.1.100添加一个 `macvlan` 设备,使容器直接连接到物理网络。
lxc config device add my-ubuntu eth1 nic nictype=macvlan parent=eth0设置端口转发:将主机的 8080 端口转发到容器的 80 端口。
lxc config device add my-ubuntu http-proxy proxy listen=tcp:0.0.0.0:8080 connect=tcp:127.0.0.1:804. 存储管理 (Storage)
存储池
列出所有存储池。
lxc storage list创建一个名为 `data` 的 ZFS 存储池。
lxc storage create data zfs查看 `default` 存储池的信息。
lxc storage info default存储卷
在 `data` 存储池中创建一个 10GB 大小的自定义存储卷 `my-volume`。
lxc storage volume create data my-volume size=10GiB将存储卷 `my-volume` 挂载到实例 `my-ubuntu` 的 `/mnt/data` 目录。
lxc storage volume attach data my-volume my-ubuntu /mnt/data列出 `data` 存储池中的所有存储卷。
lxc storage volume list data5. 配置与 Profile
Profile 管理
列出所有可用的 profile。
lxc profile list创建一个名为 `webserver` 的新 profile。
lxc profile create webserver编辑 `webserver` profile 的配置。
lxc profile edit webserver为实例 `my-ubuntu` 添加 `webserver` profile。
lxc profile add my-ubuntu webserver实例独立配置
设置实例在主机启动时自动启动。
lxc config set my-ubuntu boot.autostart true为实例添加一个磁盘设备,将主机的 `/data` 目录挂载到容器的 `/data`。
lxc config device add my-ubuntu data-share disk source=/data path=/data查看实例 `my-ubuntu` 的所有配置 (包括应用的 profile)。
lxc config show my-ubuntu --expanded6. 快照、备份与迁移
快照
为实例 `my-ubuntu` 创建一个名为 `pre-update` 的快照。
lxc snapshot my-ubuntu pre-update将实例恢复到指定的快照状态。
lxc restore my-ubuntu pre-update删除快照。
lxc delete my-ubuntu/pre-update备份与恢复
将实例导出为压缩包备份文件。
lxc export my-ubuntu my-ubuntu-backup.tar.gz从备份文件导入实例。
lxc import my-ubuntu-backup.tar.gz移动与复制
在本地重命名实例。
lxc move my-ubuntu new-name在本地复制一个新实例。
lxc copy my-ubuntu my-ubuntu-clone7. 信息查看
查看 LXD 服务器状态和配置信息。
lxc info查看特定实例 `my-ubuntu` 的详细信息,包括快照和资源使用情况。
lxc info my-ubuntu实时监控 LXD 的事件日志。
lxc monitor查看 LXD 守护进程的日志。
lxc monitor --type=logging查看最近的操作记录。
lxc operation list8. 远程与集群
远程管理
列出所有已配置的远程服务器。
lxc remote list添加一个新的远程 LXD 服务器。
lxc remote add my-remote 192.168.1.100列出名为 `my-remote` 的远程服务器上的所有实例。
lxc list my-remote:将远程实例 `my-remote:c1` 复制到本地。
lxc copy my-remote:c1 local:c1-copy集群
列出集群中的所有成员节点。
lxc cluster list在特定集群节点 `node1` 上创建实例。
lxc launch images:ubuntu/24.04 c3 --target node19. 实用快捷命令
信息查询
快速获取某个实例的 IP 地址。
lxc list my-ubuntu -c 4 --format csv | cut -d' ' -f1列出所有正在运行的实例名称。
lxc list --format csv -c n --filter status=running查看所有实例的资源使用情况(C:CPU, m:内存, N:网络)。
lxc list -c n,s,C,m,N批量操作
停止所有正在运行的实例。
lxc list -c n --format csv --filter status=running | xargs -r -I {} lxc stop {}删除所有已停止的实例。
lxc list -c n --format csv --filter status=stopped | xargs -r -I {} lxc delete {}在所有运行的 Ubuntu 容器内执行更新。
for c in $(lxc list images:ubuntu -c n --format csv --filter status=running); do lxc exec $c -- apt update \&\& apt upgrade -y; done清理与维护
清理所有未使用的本地镜像缓存。
lxc image list --format json | jq -r '.[] | select(.auto_update == false and (.aliases | length) == 0) | .fingerprint' | xargs -r lxc image delete警告:这是一个破坏性操作
此命令将立即并永久删除您系统上的 所有 LXD 实例,且无法恢复。请在执行前再三确认。
强制删除所有实例。
lxc list -c n --format csv | xargs -r -I {} lxc delete --force {}