LXD 常用命令速查手册

一份为开发者和运维人员准备的 LXD 核心命令清单,包含大量快捷命令,助你高效管理容器与虚拟机。

1. 实例管理 (Instance)

创建与启动

启动一个 Ubuntu 22.04 容器,并命名为 my-ubuntu。

lxc launch images:ubuntu/22.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/22.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/

9. 实用快捷命令

信息查询

快速获取某个实例的 IP 地址。

lxc list my-ubuntu -c 4 --format csv | cut -d' ' -f1

列出所有正在运行的实例名称。

lxc list --format csv -c n --filter status=running

查看所有实例的资源使用情况(CPU, 内存, 网络)。

lxc list -c n,s,C,m,N

批量操作

停止所有正在运行的实例。

lxc stop $(lxc list -c n --format csv --filter status=running)

删除所有已停止的实例。

lxc delete $(lxc list -c n --format csv --filter status=stopped)

在所有运行的 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 delete --force $(lxc list -c n --format csv)