SYNOPSIS
pct <COMMAND> [ARGS] [OPTIONS]
pct clone <vmid> <newid> [OPTIONS]
创建容器克隆或副本
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <newid>: <integer> (100 - 999999999)
-
克隆的 VMID。
- --bwlimit <number> (0 - N) (default = clone limit from datacenter or storage config)
-
覆盖 I/O 带宽限制(KiB/s)。
- --description <string>
-
新 CT 的说明。
- --full <boolean>
-
创建所有磁盘的完整副本。克隆普通 CT 时始终会这样做。对于 CT 模板,默认会尝试创建链接克隆。
- --hostname <string>
-
设置新 CT 的主机名。
- --pool <string>
-
将新 CT 添加到指定池。
- --snapname <string>
-
快照名称。
- --storage <storage ID>
-
完整克隆的目标存储。
- --target <string>
-
目标节点。仅当原始 VM 位于共享存储上时才允许。
pct config <vmid> [OPTIONS]
获取容器配置。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --current <boolean> (default = 0)
-
获取当前值(而不是待应用值)。
- --snapshot <string>
-
从给定快照获取配置值。
pct console <vmid> [OPTIONS]
为指定容器启动控制台。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --escape \^?[a-z] (default = ^a)
-
转义序列前缀。例如,要使用 <Ctrl+b q> 作为转义序列,请传入 ^b。
pct cpusets
打印已分配 CPU 集合列表。
pct create <vmid> <ostemplate> [OPTIONS]
创建或还原容器。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <ostemplate>: <string>
-
OS 模板或备份文件。
- --arch <amd64 | arm64 | armhf | i386 | riscv32 | riscv64> (default = amd64)
-
OS 架构类型。
- --bwlimit <number> (0 - N) (default = restore limit from datacenter or storage config)
-
覆盖 I/O 带宽限制(KiB/s)。
- --cmode <console | shell | tty> (default = tty)
-
控制台模式。默认情况下,console 命令会尝试连接到一个可用的 tty 设备。将 cmode 设置为 console 时,它会改为尝试附加到 /dev/console。将 cmode 设置为 shell 时,它只会在容器内调用 shell(不登录)。
- --console <boolean> (default = 1)
-
将控制台设备(/dev/console)附加到容器。
- --cores <integer> (1 - 8192)
-
分配给容器的核心数量。默认情况下,容器可以使用所有可用核心。
- --cpulimit <number> (0 - 8192) (default = 0)
-
CPU 使用限制。
如果计算机有 2 个 CPU,则总共有 2 份 CPU 时间。值 0 表示不限制 CPU。 - --cpuunits <integer> (0 - 500000) (default = cgroup v1: 1024, cgroup v2: 100)
-
容器的 CPU 权重,在 cgroup v2 中会限制到 [1, 10000]。
- --debug <boolean> (default = 0)
-
尝试输出更详细的信息。目前这只会在启动时启用 debug 日志级别。
- --description <string>
-
容器说明。显示在 Web 界面的 CT 摘要中,并作为注释保存在配置文件内。
- --dev[n] [[path=]<Path>] [,deny-write=<1|0>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]
-
要直通给容器的设备
- --features [force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]
-
允许容器访问高级功能。
- --force <boolean>
-
允许覆盖现有容器。
- --hookscript <string>
-
在容器生命周期的各个步骤中执行的脚本。
- --hostname <string>
-
设置容器主机名。
- --ignore-unpack-errors <boolean>
-
提取模板时忽略错误。
- --lock <backup | create | destroyed | disk | fstrim | migrate | mounted | rollback | snapshot | snapshot-delete>
-
锁定或解锁容器。
- --memory <integer> (16 - N) (default = 512)
-
容器 RAM 容量,单位为 MB。
- --mp[n] [volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器挂载点。使用特殊语法 STORAGE_ID:SIZE_IN_GiB 可分配新卷。
- --nameserver <string>
-
设置容器的 DNS 服务器 IP 地址。如果既未设置 searchdomain 也未设置 nameserver,创建时会自动使用宿主机设置。
- --net[n] name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]
-
指定容器的网络接口。
- --onboot <boolean> (default = 0)
-
指定容器是否在系统启动期间启动。
- --ostype <alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse | ubuntu | unmanaged>
-
OS 类型。用于设置容器内部配置,并对应 /usr/share/lxc/config/<ostype>.common.conf 中的 lxc 设置脚本。值 unmanaged 可用于跳过 OS 特定设置。
- --password <password>
-
设置容器内 root 密码。
- --pool <string>
-
将 VM 添加到指定池。
- --protection <boolean> (default = 0)
-
设置容器的保护标志。这会阻止 CT 或 CT 磁盘的删除/更新操作。
- --restore <boolean>
-
将其标记为还原任务。
- --rootfs [volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器根目录。
- --searchdomain <string>
-
设置容器的 DNS 搜索域。如果既未设置 searchdomain 也未设置 nameserver,创建时会自动使用宿主机设置。
- --ssh-public-keys <filepath>
-
设置 SSH 公钥(每行一个密钥,OpenSSH 格式)。
- --start <boolean> (default = 0)
-
创建成功完成后启动 CT。
- --startup `[[order=]\d+] [,up=\d+] [,down=\d+] `
-
启动和关机行为。Order 是定义总体启动顺序的非负数。关机会按相反顺序执行。此外,可以设置以秒为单位的 up 或 down 延迟,用于指定启动或停止下一台 VM 前等待的时间。
- --storage <storage ID> (default = local)
-
默认存储。
- --swap <integer> (0 - N) (default = 512)
-
容器 SWAP 容量,单位为 MB。
- --tags <string>
-
容器标签。该信息仅为元信息。
- --template <boolean> (default = 0)
-
启用或禁用模板。
- --timezone <string>
-
容器中使用的时区。如果未设置该选项,则不执行任何操作。可设置为 host 以匹配宿主机时区,或设置为 /usr/share/zoneinfo/zone.tab 中的任意时区选项。
- --tty <integer> (0 - 6) (default = 2)
-
指定容器可用的 tty 数量
- --unique <boolean>
-
分配唯一的随机以太网地址。
需要选项:restore - --unprivileged <boolean> (default = 0)
-
使容器以非特权用户身份运行。(不应手动修改。)
- --unused[n] [volume=]<volume>
-
未使用卷的引用。该项供内部使用,不应手动修改。
pct delsnapshot <vmid> <snapname> [OPTIONS]
删除 LXC 快照。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <snapname>: <string>
-
快照名称。
- --force <boolean>
-
即使移除磁盘快照失败,也从配置文件中移除。
pct destroy <vmid> [OPTIONS]
销毁容器(同时删除所有使用的文件)。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --destroy-unreferenced-disks <boolean>
-
如果设置,则额外销毁所有已启用存储中带有该 VMID 且未在配置中引用的磁盘。
- --force <boolean> (default = 0)
-
即使正在运行也强制销毁。
- --purge <boolean> (default = 0)
-
从所有相关配置中移除容器,例如备份作业、复制作业或 HA。相关 ACL 和防火墙条目将 始终 被移除。
pct df <vmid>
获取容器当前磁盘使用量。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct enter <vmid> [OPTIONS]
为指定容器启动 shell。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --keep-env <boolean> (default = 1)
-
保留当前环境。该选项将在 PVE 9 中默认禁用。如果依赖保留环境,请使用此选项以适应未来版本。
pct exec <vmid> [<extra-args>] [OPTIONS]
在指定容器内启动命令。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <extra-args>: <array>
-
作为数组传入的额外参数
- --keep-env <boolean> (default = 1)
-
保留当前环境。该选项将在 PVE 9 中默认禁用。如果依赖保留环境,请使用此选项以适应未来版本。
pct fsck <vmid> [OPTIONS]
在容器卷上运行文件系统检查(fsck)。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --device <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111 | mp112 | mp113 | mp114 | mp115 | mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp128 | mp129 | mp13 | mp130 | mp131 | mp132 | mp133 | mp134 | mp135 | mp136 | mp137 | mp138 | mp139 | mp14 | mp140 | mp141 | mp142 | mp143 | mp144 | mp145 | mp146 | mp147 | mp148 | mp149 | mp15 | mp150 | mp151 | mp152 | mp153 | mp154 | mp155 | mp156 | mp157 | mp158 | mp159 | mp16 | mp160 | mp161 | mp162 | mp163 | mp164 | mp165 | mp166 | mp167 | mp168 | mp169 | mp17 | mp170 | mp171 | mp172 | mp173 | mp174 | mp175 | mp176 | mp177 | mp178 | mp179 | mp18 | mp180 | mp181 | mp182 | mp183 | mp184 | mp185 | mp186 | mp187 | mp188 | mp189 | mp19 | mp190 | mp191 | mp192 | mp193 | mp194 | mp195 | mp196 | mp197 | mp198 | mp199 | mp2 | mp20 | mp200 | mp201 | mp202 | mp203 | mp204 | mp205 | mp206 | mp207 | mp208 | mp209 | mp21 | mp210 | mp211 | mp212 | mp213 | mp214 | mp215 | mp216 | mp217 | mp218 | mp219 | mp22 | mp220 | mp221 | mp222 | mp223 | mp224 | mp225 | mp226 | mp227 | mp228 | mp229 | mp23 | mp230 | mp231 | mp232 | mp233 | mp234 | mp235 | mp236 | mp237 | mp238 | mp239 | mp24 | mp240 | mp241 | mp242 | mp243 | mp244 | mp245 | mp246 | mp247 | mp248 | mp249 | mp25 | mp250 | mp251 | mp252 | mp253 | mp254 | mp255 | mp26 | mp27 | mp28 | mp29 | mp3 | mp30 | mp31 | mp32 | mp33 | mp34 | mp35 | mp36 | mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 | mp46 | mp47 | mp48 | mp49 | mp5 | mp50 | mp51 | mp52 | mp53 | mp54 | mp55 | mp56 | mp57 | mp58 | mp59 | mp6 | mp60 | mp61 | mp62 | mp63 | mp64 | mp65 | mp66 | mp67 | mp68 | mp69 | mp7 | mp70 | mp71 | mp72 | mp73 | mp74 | mp75 | mp76 | mp77 | mp78 | mp79 | mp8 | mp80 | mp81 | mp82 | mp83 | mp84 | mp85 | mp86 | mp87 | mp88 | mp89 | mp9 | mp90 | mp91 | mp92 | mp93 | mp94 | mp95 | mp96 | mp97 | mp98 | mp99 | rootfs>
-
要运行文件系统检查的卷
- --force <boolean> (default = 0)
-
即使文件系统看起来干净也强制检查
pct fstrim <vmid> [OPTIONS]
在选定 CT 及其挂载点上运行 fstrim,但不包括 bind 或只读挂载点。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --ignore-mountpoints <boolean>
-
跳过所有挂载点,仅在容器根目录上执行 fstrim。
pct help [OPTIONS]
获取指定命令的帮助。
- --extra-args <array>
-
显示特定命令的帮助
- --verbose <boolean>
-
详细输出格式。
pct list
LXC 容器索引(按节点)。
pct listsnapshot <vmid>
列出所有快照。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct migrate <vmid> <target> [OPTIONS]
将容器迁移到另一节点。创建新的迁移任务。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <target>: <string>
-
目标节点。
- --bwlimit <number> (0 - N) (default = migrate limit from datacenter or storage config)
-
覆盖 I/O 带宽限制(KiB/s)。
- --online <boolean>
-
使用在线/实时迁移。
- --restart <boolean>
-
使用重启迁移
- --target-storage <string>
-
从源存储到目标存储的映射。只提供单个存储 ID 时,会将所有源存储映射到该存储。提供特殊值 1 时,会将每个源存储映射到其自身。
- --timeout <integer> (default = 180)
-
重启迁移时等待关机的超时时间,单位为秒
pct mount <vmid>
在宿主机上挂载容器文件系统。这会持有容器锁,仅用于紧急维护,因为它会阻止除启动和停止之外的其他容器操作。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct move-volume <vmid> <volume> [<storage>] [<target-vmid>] [<target-volume>] [OPTIONS]
将 rootfs-/mp-volume 移动到不同存储或不同容器。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <volume>: <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111 | mp112 | mp113 | mp114 | mp115 | mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp128 | mp129 | mp13 | mp130 | mp131 | mp132 | mp133 | mp134 | mp135 | mp136 | mp137 | mp138 | mp139 | mp14 | mp140 | mp141 | mp142 | mp143 | mp144 | mp145 | mp146 | mp147 | mp148 | mp149 | mp15 | mp150 | mp151 | mp152 | mp153 | mp154 | mp155 | mp156 | mp157 | mp158 | mp159 | mp16 | mp160 | mp161 | mp162 | mp163 | mp164 | mp165 | mp166 | mp167 | mp168 | mp169 | mp17 | mp170 | mp171 | mp172 | mp173 | mp174 | mp175 | mp176 | mp177 | mp178 | mp179 | mp18 | mp180 | mp181 | mp182 | mp183 | mp184 | mp185 | mp186 | mp187 | mp188 | mp189 | mp19 | mp190 | mp191 | mp192 | mp193 | mp194 | mp195 | mp196 | mp197 | mp198 | mp199 | mp2 | mp20 | mp200 | mp201 | mp202 | mp203 | mp204 | mp205 | mp206 | mp207 | mp208 | mp209 | mp21 | mp210 | mp211 | mp212 | mp213 | mp214 | mp215 | mp216 | mp217 | mp218 | mp219 | mp22 | mp220 | mp221 | mp222 | mp223 | mp224 | mp225 | mp226 | mp227 | mp228 | mp229 | mp23 | mp230 | mp231 | mp232 | mp233 | mp234 | mp235 | mp236 | mp237 | mp238 | mp239 | mp24 | mp240 | mp241 | mp242 | mp243 | mp244 | mp245 | mp246 | mp247 | mp248 | mp249 | mp25 | mp250 | mp251 | mp252 | mp253 | mp254 | mp255 | mp26 | mp27 | mp28 | mp29 | mp3 | mp30 | mp31 | mp32 | mp33 | mp34 | mp35 | mp36 | mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 | mp46 | mp47 | mp48 | mp49 | mp5 | mp50 | mp51 | mp52 | mp53 | mp54 | mp55 | mp56 | mp57 | mp58 | mp59 | mp6 | mp60 | mp61 | mp62 | mp63 | mp64 | mp65 | mp66 | mp67 | mp68 | mp69 | mp7 | mp70 | mp71 | mp72 | mp73 | mp74 | mp75 | mp76 | mp77 | mp78 | mp79 | mp8 | mp80 | mp81 | mp82 | mp83 | mp84 | mp85 | mp86 | mp87 | mp88 | mp89 | mp9 | mp90 | mp91 | mp92 | mp93 | mp94 | mp95 | mp96 | mp97 | mp98 | mp99 | rootfs | unused0 | unused1 | unused10 | unused100 | unused101 | unused102 | unused103 | unused104 | unused105 | unused106 | unused107 | unused108 | unused109 | unused11 | unused110 | unused111 | unused112 | unused113 | unused114 | unused115 | unused116 | unused117 | unused118 | unused119 | unused12 | unused120 | unused121 | unused122 | unused123 | unused124 | unused125 | unused126 | unused127 | unused128 | unused129 | unused13 | unused130 | unused131 | unused132 | unused133 | unused134 | unused135 | unused136 | unused137 | unused138 | unused139 | unused14 | unused140 | unused141 | unused142 | unused143 | unused144 | unused145 | unused146 | unused147 | unused148 | unused149 | unused15 | unused150 | unused151 | unused152 | unused153 | unused154 | unused155 | unused156 | unused157 | unused158 | unused159 | unused16 | unused160 | unused161 | unused162 | unused163 | unused164 | unused165 | unused166 | unused167 | unused168 | unused169 | unused17 | unused170 | unused171 | unused172 | unused173 | unused174 | unused175 | unused176 | unused177 | unused178 | unused179 | unused18 | unused180 | unused181 | unused182 | unused183 | unused184 | unused185 | unused186 | unused187 | unused188 | unused189 | unused19 | unused190 | unused191 | unused192 | unused193 | unused194 | unused195 | unused196 | unused197 | unused198 | unused199 | unused2 | unused20 | unused200 | unused201 | unused202 | unused203 | unused204 | unused205 | unused206 | unused207 | unused208 | unused209 | unused21 | unused210 | unused211 | unused212 | unused213 | unused214 | unused215 | unused216 | unused217 | unused218 | unused219 | unused22 | unused220 | unused221 | unused222 | unused223 | unused224 | unused225 | unused226 | unused227 | unused228 | unused229 | unused23 | unused230 | unused231 | unused232 | unused233 | unused234 | unused235 | unused236 | unused237 | unused238 | unused239 | unused24 | unused240 | unused241 | unused242 | unused243 | unused244 | unused245 | unused246 | unused247 | unused248 | unused249 | unused25 | unused250 | unused251 | unused252 | unused253 | unused254 | unused255 | unused26 | unused27 | unused28 | unused29 | unused3 | unused30 | unused31 | unused32 | unused33 | unused34 | unused35 | unused36 | unused37 | unused38 | unused39 | unused4 | unused40 | unused41 | unused42 | unused43 | unused44 | unused45 | unused46 | unused47 | unused48 | unused49 | unused5 | unused50 | unused51 | unused52 | unused53 | unused54 | unused55 | unused56 | unused57 | unused58 | unused59 | unused6 | unused60 | unused61 | unused62 | unused63 | unused64 | unused65 | unused66 | unused67 | unused68 | unused69 | unused7 | unused70 | unused71 | unused72 | unused73 | unused74 | unused75 | unused76 | unused77 | unused78 | unused79 | unused8 | unused80 | unused81 | unused82 | unused83 | unused84 | unused85 | unused86 | unused87 | unused88 | unused89 | unused9 | unused90 | unused91 | unused92 | unused93 | unused94 | unused95 | unused96 | unused97 | unused98 | unused99>
-
将被移动的卷。
- <storage>: <storage ID>
-
目标存储。
- <target-vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <target-volume>: <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111 | mp112 | mp113 | mp114 | mp115 | mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp128 | mp129 | mp13 | mp130 | mp131 | mp132 | mp133 | mp134 | mp135 | mp136 | mp137 | mp138 | mp139 | mp14 | mp140 | mp141 | mp142 | mp143 | mp144 | mp145 | mp146 | mp147 | mp148 | mp149 | mp15 | mp150 | mp151 | mp152 | mp153 | mp154 | mp155 | mp156 | mp157 | mp158 | mp159 | mp16 | mp160 | mp161 | mp162 | mp163 | mp164 | mp165 | mp166 | mp167 | mp168 | mp169 | mp17 | mp170 | mp171 | mp172 | mp173 | mp174 | mp175 | mp176 | mp177 | mp178 | mp179 | mp18 | mp180 | mp181 | mp182 | mp183 | mp184 | mp185 | mp186 | mp187 | mp188 | mp189 | mp19 | mp190 | mp191 | mp192 | mp193 | mp194 | mp195 | mp196 | mp197 | mp198 | mp199 | mp2 | mp20 | mp200 | mp201 | mp202 | mp203 | mp204 | mp205 | mp206 | mp207 | mp208 | mp209 | mp21 | mp210 | mp211 | mp212 | mp213 | mp214 | mp215 | mp216 | mp217 | mp218 | mp219 | mp22 | mp220 | mp221 | mp222 | mp223 | mp224 | mp225 | mp226 | mp227 | mp228 | mp229 | mp23 | mp230 | mp231 | mp232 | mp233 | mp234 | mp235 | mp236 | mp237 | mp238 | mp239 | mp24 | mp240 | mp241 | mp242 | mp243 | mp244 | mp245 | mp246 | mp247 | mp248 | mp249 | mp25 | mp250 | mp251 | mp252 | mp253 | mp254 | mp255 | mp26 | mp27 | mp28 | mp29 | mp3 | mp30 | mp31 | mp32 | mp33 | mp34 | mp35 | mp36 | mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 | mp46 | mp47 | mp48 | mp49 | mp5 | mp50 | mp51 | mp52 | mp53 | mp54 | mp55 | mp56 | mp57 | mp58 | mp59 | mp6 | mp60 | mp61 | mp62 | mp63 | mp64 | mp65 | mp66 | mp67 | mp68 | mp69 | mp7 | mp70 | mp71 | mp72 | mp73 | mp74 | mp75 | mp76 | mp77 | mp78 | mp79 | mp8 | mp80 | mp81 | mp82 | mp83 | mp84 | mp85 | mp86 | mp87 | mp88 | mp89 | mp9 | mp90 | mp91 | mp92 | mp93 | mp94 | mp95 | mp96 | mp97 | mp98 | mp99 | rootfs | unused0 | unused1 | unused10 | unused100 | unused101 | unused102 | unused103 | unused104 | unused105 | unused106 | unused107 | unused108 | unused109 | unused11 | unused110 | unused111 | unused112 | unused113 | unused114 | unused115 | unused116 | unused117 | unused118 | unused119 | unused12 | unused120 | unused121 | unused122 | unused123 | unused124 | unused125 | unused126 | unused127 | unused128 | unused129 | unused13 | unused130 | unused131 | unused132 | unused133 | unused134 | unused135 | unused136 | unused137 | unused138 | unused139 | unused14 | unused140 | unused141 | unused142 | unused143 | unused144 | unused145 | unused146 | unused147 | unused148 | unused149 | unused15 | unused150 | unused151 | unused152 | unused153 | unused154 | unused155 | unused156 | unused157 | unused158 | unused159 | unused16 | unused160 | unused161 | unused162 | unused163 | unused164 | unused165 | unused166 | unused167 | unused168 | unused169 | unused17 | unused170 | unused171 | unused172 | unused173 | unused174 | unused175 | unused176 | unused177 | unused178 | unused179 | unused18 | unused180 | unused181 | unused182 | unused183 | unused184 | unused185 | unused186 | unused187 | unused188 | unused189 | unused19 | unused190 | unused191 | unused192 | unused193 | unused194 | unused195 | unused196 | unused197 | unused198 | unused199 | unused2 | unused20 | unused200 | unused201 | unused202 | unused203 | unused204 | unused205 | unused206 | unused207 | unused208 | unused209 | unused21 | unused210 | unused211 | unused212 | unused213 | unused214 | unused215 | unused216 | unused217 | unused218 | unused219 | unused22 | unused220 | unused221 | unused222 | unused223 | unused224 | unused225 | unused226 | unused227 | unused228 | unused229 | unused23 | unused230 | unused231 | unused232 | unused233 | unused234 | unused235 | unused236 | unused237 | unused238 | unused239 | unused24 | unused240 | unused241 | unused242 | unused243 | unused244 | unused245 | unused246 | unused247 | unused248 | unused249 | unused25 | unused250 | unused251 | unused252 | unused253 | unused254 | unused255 | unused26 | unused27 | unused28 | unused29 | unused3 | unused30 | unused31 | unused32 | unused33 | unused34 | unused35 | unused36 | unused37 | unused38 | unused39 | unused4 | unused40 | unused41 | unused42 | unused43 | unused44 | unused45 | unused46 | unused47 | unused48 | unused49 | unused5 | unused50 | unused51 | unused52 | unused53 | unused54 | unused55 | unused56 | unused57 | unused58 | unused59 | unused6 | unused60 | unused61 | unused62 | unused63 | unused64 | unused65 | unused66 | unused67 | unused68 | unused69 | unused7 | unused70 | unused71 | unused72 | unused73 | unused74 | unused75 | unused76 | unused77 | unused78 | unused79 | unused8 | unused80 | unused81 | unused82 | unused83 | unused84 | unused85 | unused86 | unused87 | unused88 | unused89 | unused9 | unused90 | unused91 | unused92 | unused93 | unused94 | unused95 | unused96 | unused97 | unused98 | unused99>
-
卷将移动到的配置键。默认为源卷键。
- --bwlimit <number> (0 - N) (default = clone limit from datacenter or storage config)
-
覆盖 I/O 带宽限制(KiB/s)。
- --delete <boolean> (default = 0)
-
成功复制后删除原始卷。默认情况下,原始卷会保留为未使用卷条目。
- --digest <string>
-
如果当前配置文件具有不同的 SHA1 digest,则阻止更改。这可用于防止并发修改。
- --target-digest <string>
-
如果目标容器的当前配置文件具有不同的 SHA1 digest,则阻止更改。这可用于防止并发修改。
pct move_volume
pct move-volume 的别名。
pct pending <vmid>
获取容器配置,包括待应用更改。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct pull <vmid> <path> <destination> [OPTIONS]
将文件从容器复制到本地系统。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <path>: <string>
-
要从容器内拉取的文件路径。
- <destination>: <string>
-
目标
- --group <string>
-
所有者组名或 ID。
- --perms <string>
-
要使用的文件权限(默认为八进制,使用 0x 前缀表示十六进制)。
- --user <string>
-
所有者用户名或 ID。
pct push <vmid> <file> <destination> [OPTIONS]
将本地文件复制到容器。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <file>: <string>
-
本地文件路径。
- <destination>: <string>
-
容器内要写入的目标位置。
- --group <string>
-
所有者组名或 ID。使用名称时,该名称必须存在于容器内。
- --perms <string>
-
要使用的文件权限(默认为八进制,使用 0x 前缀表示十六进制)。
- --user <string>
-
所有者用户名或 ID。使用名称时,该名称必须存在于容器内。
pct reboot <vmid> [OPTIONS]
通过关闭并再次启动来重启容器。会应用待处理更改。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --timeout <integer> (0 - N)
-
等待关机的最大超时时间,单位为秒。
pct remote-migrate <vmid> [<target-vmid>] <target-endpoint> --target-bridge <string> --target-storage <string> [OPTIONS]
将容器迁移到远程集群。创建新的迁移任务。 实验性功能!
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <target-vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <target-endpoint>: apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>]
-
远程目标端点
- --bwlimit <integer> (0 - N) (default = migrate limit from datacenter or storage config)
-
覆盖 I/O 带宽限制(KiB/s)。
- --delete <boolean> (default = 0)
-
成功迁移后删除原始 CT 及相关数据。默认情况下,原始 CT 会以停止状态保留在源集群上。
- --online <boolean>
-
使用在线/实时迁移。
- --restart <boolean>
-
使用重启迁移
- --target-bridge <string>
-
从源网桥到目标网桥的映射。只提供单个网桥 ID 时,会将所有源网桥映射到该网桥。提供特殊值 1 时,会将每个源网桥映射到其自身。
- --target-storage <string>
-
从源存储到目标存储的映射。只提供单个存储 ID 时,会将所有源存储映射到该存储。提供特殊值 1 时,会将每个源存储映射到其自身。
- --timeout <integer> (default = 180)
-
重启迁移时等待关机的超时时间,单位为秒
pct rescan [OPTIONS]
重新扫描所有存储,并更新磁盘大小和未使用磁盘镜像。
- --dryrun <boolean> (default = 0)
-
不要将更改实际写入配置。
- --vmid <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct resize <vmid> <disk> <size> [OPTIONS]
调整容器挂载点大小。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <disk>: <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111 | mp112 | mp113 | mp114 | mp115 | mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp128 | mp129 | mp13 | mp130 | mp131 | mp132 | mp133 | mp134 | mp135 | mp136 | mp137 | mp138 | mp139 | mp14 | mp140 | mp141 | mp142 | mp143 | mp144 | mp145 | mp146 | mp147 | mp148 | mp149 | mp15 | mp150 | mp151 | mp152 | mp153 | mp154 | mp155 | mp156 | mp157 | mp158 | mp159 | mp16 | mp160 | mp161 | mp162 | mp163 | mp164 | mp165 | mp166 | mp167 | mp168 | mp169 | mp17 | mp170 | mp171 | mp172 | mp173 | mp174 | mp175 | mp176 | mp177 | mp178 | mp179 | mp18 | mp180 | mp181 | mp182 | mp183 | mp184 | mp185 | mp186 | mp187 | mp188 | mp189 | mp19 | mp190 | mp191 | mp192 | mp193 | mp194 | mp195 | mp196 | mp197 | mp198 | mp199 | mp2 | mp20 | mp200 | mp201 | mp202 | mp203 | mp204 | mp205 | mp206 | mp207 | mp208 | mp209 | mp21 | mp210 | mp211 | mp212 | mp213 | mp214 | mp215 | mp216 | mp217 | mp218 | mp219 | mp22 | mp220 | mp221 | mp222 | mp223 | mp224 | mp225 | mp226 | mp227 | mp228 | mp229 | mp23 | mp230 | mp231 | mp232 | mp233 | mp234 | mp235 | mp236 | mp237 | mp238 | mp239 | mp24 | mp240 | mp241 | mp242 | mp243 | mp244 | mp245 | mp246 | mp247 | mp248 | mp249 | mp25 | mp250 | mp251 | mp252 | mp253 | mp254 | mp255 | mp26 | mp27 | mp28 | mp29 | mp3 | mp30 | mp31 | mp32 | mp33 | mp34 | mp35 | mp36 | mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 | mp46 | mp47 | mp48 | mp49 | mp5 | mp50 | mp51 | mp52 | mp53 | mp54 | mp55 | mp56 | mp57 | mp58 | mp59 | mp6 | mp60 | mp61 | mp62 | mp63 | mp64 | mp65 | mp66 | mp67 | mp68 | mp69 | mp7 | mp70 | mp71 | mp72 | mp73 | mp74 | mp75 | mp76 | mp77 | mp78 | mp79 | mp8 | mp80 | mp81 | mp82 | mp83 | mp84 | mp85 | mp86 | mp87 | mp88 | mp89 | mp9 | mp90 | mp91 | mp92 | mp93 | mp94 | mp95 | mp96 | mp97 | mp98 | mp99 | rootfs>
-
要调整大小的磁盘。
- <size>: \+?\d+(\.\d+)?[KMGT]?
-
新的大小。带有 + 号时,该值会加到卷的实际大小上;不带时,该值被视为绝对大小。不支持缩小磁盘大小。
- --digest <string>
-
如果当前配置文件具有不同的 SHA1 digest,则阻止更改。这可用于防止并发修改。
pct restore <vmid> <ostemplate> [OPTIONS]
创建或还原容器。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <ostemplate>: <string>
-
OS 模板或备份文件。
- --arch <amd64 | arm64 | armhf | i386 | riscv32 | riscv64> (default = amd64)
-
OS 架构类型。
- --bwlimit <number> (0 - N) (default = restore limit from datacenter or storage config)
-
覆盖 I/O 带宽限制(KiB/s)。
- --cmode <console | shell | tty> (default = tty)
-
控制台模式。默认情况下,console 命令会尝试连接到一个可用的 tty 设备。将 cmode 设置为 console 时,它会改为尝试附加到 /dev/console。将 cmode 设置为 shell 时,它只会在容器内调用 shell(不登录)。
- --console <boolean> (default = 1)
-
将控制台设备(/dev/console)附加到容器。
- --cores <integer> (1 - 8192)
-
分配给容器的核心数量。默认情况下,容器可以使用所有可用核心。
- --cpulimit <number> (0 - 8192) (default = 0)
-
CPU 使用限制。
如果计算机有 2 个 CPU,则总共有 2 份 CPU 时间。值 0 表示不限制 CPU。 - --cpuunits <integer> (0 - 500000) (default = cgroup v1: 1024, cgroup v2: 100)
-
容器的 CPU 权重,在 cgroup v2 中会限制到 [1, 10000]。
- --debug <boolean> (default = 0)
-
尝试输出更详细的信息。目前这只会在启动时启用 debug 日志级别。
- --description <string>
-
容器说明。显示在 Web 界面的 CT 摘要中,并作为注释保存在配置文件内。
- --dev[n] [[path=]<Path>] [,deny-write=<1|0>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]
-
要直通给容器的设备
- --features [force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]
-
允许容器访问高级功能。
- --force <boolean>
-
允许覆盖现有容器。
- --hookscript <string>
-
在容器生命周期的各个步骤中执行的脚本。
- --hostname <string>
-
设置容器主机名。
- --ignore-unpack-errors <boolean>
-
提取模板时忽略错误。
- --lock <backup | create | destroyed | disk | fstrim | migrate | mounted | rollback | snapshot | snapshot-delete>
-
锁定或解锁容器。
- --memory <integer> (16 - N) (default = 512)
-
容器 RAM 容量,单位为 MB。
- --mp[n] [volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器挂载点。使用特殊语法 STORAGE_ID:SIZE_IN_GiB 可分配新卷。
- --nameserver <string>
-
设置容器的 DNS 服务器 IP 地址。如果既未设置 searchdomain 也未设置 nameserver,创建时会自动使用宿主机设置。
- --net[n] name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]
-
指定容器的网络接口。
- --onboot <boolean> (default = 0)
-
指定容器是否在系统启动期间启动。
- --ostype <alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse | ubuntu | unmanaged>
-
OS 类型。用于设置容器内部配置,并对应 /usr/share/lxc/config/<ostype>.common.conf 中的 lxc 设置脚本。值 unmanaged 可用于跳过 OS 特定设置。
- --password <password>
-
设置容器内 root 密码。
- --pool <string>
-
将 VM 添加到指定池。
- --protection <boolean> (default = 0)
-
设置容器的保护标志。这会阻止 CT 或 CT 磁盘的删除/更新操作。
- --rootfs [volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器根目录。
- --searchdomain <string>
-
设置容器的 DNS 搜索域。如果既未设置 searchdomain 也未设置 nameserver,创建时会自动使用宿主机设置。
- --ssh-public-keys <filepath>
-
设置 SSH 公钥(每行一个密钥,OpenSSH 格式)。
- --start <boolean> (default = 0)
-
创建成功完成后启动 CT。
- --startup `[[order=]\d+] [,up=\d+] [,down=\d+] `
-
启动和关机行为。Order 是定义总体启动顺序的非负数。关机会按相反顺序执行。此外,可以设置以秒为单位的 up 或 down 延迟,用于指定启动或停止下一台 VM 前等待的时间。
- --storage <storage ID> (default = local)
-
默认存储。
- --swap <integer> (0 - N) (default = 512)
-
容器 SWAP 容量,单位为 MB。
- --tags <string>
-
容器标签。该信息仅为元信息。
- --template <boolean> (default = 0)
-
启用或禁用模板。
- --timezone <string>
-
容器中使用的时区。如果未设置该选项,则不执行任何操作。可设置为 host 以匹配宿主机时区,或设置为 /usr/share/zoneinfo/zone.tab 中的任意时区选项。
- --tty <integer> (0 - 6) (default = 2)
-
指定容器可用的 tty 数量
- --unique <boolean>
-
分配唯一的随机以太网地址。
需要选项:restore - --unprivileged <boolean> (default = 0)
-
使容器以非特权用户身份运行。(不应手动修改。)
- --unused[n] [volume=]<volume>
-
未使用卷的引用。该项供内部使用,不应手动修改。
pct resume <vmid>
恢复容器。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct rollback <vmid> <snapname> [OPTIONS]
将 LXC 状态回滚到指定快照。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <snapname>: <string>
-
快照名称。
- --start <boolean> (default = 0)
-
回滚成功后是否应启动容器
pct set <vmid> [OPTIONS]
设置容器选项。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --arch <amd64 | arm64 | armhf | i386 | riscv32 | riscv64> (default = amd64)
-
OS 架构类型。
- --cmode <console | shell | tty> (default = tty)
-
控制台模式。默认情况下,console 命令会尝试连接到一个可用的 tty 设备。将 cmode 设置为 console 时,它会改为尝试附加到 /dev/console。将 cmode 设置为 shell 时,它只会在容器内调用 shell(不登录)。
- --console <boolean> (default = 1)
-
将控制台设备(/dev/console)附加到容器。
- --cores <integer> (1 - 8192)
-
分配给容器的核心数量。默认情况下,容器可以使用所有可用核心。
- --cpulimit <number> (0 - 8192) (default = 0)
-
CPU 使用限制。
如果计算机有 2 个 CPU,则总共有 2 份 CPU 时间。值 0 表示不限制 CPU。 - --cpuunits <integer> (0 - 500000) (default = cgroup v1: 1024, cgroup v2: 100)
-
容器的 CPU 权重,在 cgroup v2 中会限制到 [1, 10000]。
- --debug <boolean> (default = 0)
-
尝试输出更详细的信息。目前这只会在启动时启用 debug 日志级别。
- --delete <string>
-
要删除的设置列表。
- --description <string>
-
容器说明。显示在 Web 界面的 CT 摘要中,并作为注释保存在配置文件内。
- --dev[n] [[path=]<Path>] [,deny-write=<1|0>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]
-
要直通给容器的设备
- --digest <string>
-
如果当前配置文件具有不同的 SHA1 digest,则阻止更改。这可用于防止并发修改。
- --features [force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]
-
允许容器访问高级功能。
- --hookscript <string>
-
在容器生命周期的各个步骤中执行的脚本。
- --hostname <string>
-
设置容器主机名。
- --lock <backup | create | destroyed | disk | fstrim | migrate | mounted | rollback | snapshot | snapshot-delete>
-
锁定或解锁容器。
- --memory <integer> (16 - N) (default = 512)
-
容器 RAM 容量,单位为 MB。
- --mp[n] [volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器挂载点。使用特殊语法 STORAGE_ID:SIZE_IN_GiB 可分配新卷。
- --nameserver <string>
-
设置容器的 DNS 服务器 IP 地址。如果既未设置 searchdomain 也未设置 nameserver,创建时会自动使用宿主机设置。
- --net[n] name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]
-
指定容器的网络接口。
- --onboot <boolean> (default = 0)
-
指定容器是否在系统启动期间启动。
- --ostype <alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse | ubuntu | unmanaged>
-
OS 类型。用于设置容器内部配置,并对应 /usr/share/lxc/config/<ostype>.common.conf 中的 lxc 设置脚本。值 unmanaged 可用于跳过 OS 特定设置。
- --protection <boolean> (default = 0)
-
设置容器的保护标志。这会阻止 CT 或 CT 磁盘的删除/更新操作。
- --revert <string>
-
还原待应用更改。
- --rootfs [volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器根目录。
- --searchdomain <string>
-
设置容器的 DNS 搜索域。如果既未设置 searchdomain 也未设置 nameserver,创建时会自动使用宿主机设置。
- --startup `[[order=]\d+] [,up=\d+] [,down=\d+] `
-
启动和关机行为。Order 是定义总体启动顺序的非负数。关机会按相反顺序执行。此外,可以设置以秒为单位的 up 或 down 延迟,用于指定启动或停止下一台 VM 前等待的时间。
- --swap <integer> (0 - N) (default = 512)
-
容器 SWAP 容量,单位为 MB。
- --tags <string>
-
容器标签。该信息仅为元信息。
- --template <boolean> (default = 0)
-
启用或禁用模板。
- --timezone <string>
-
容器中使用的时区。如果未设置该选项,则不执行任何操作。可设置为 host 以匹配宿主机时区,或设置为 /usr/share/zoneinfo/zone.tab 中的任意时区选项。
- --tty <integer> (0 - 6) (default = 2)
-
指定容器可用的 tty 数量
- --unprivileged <boolean> (default = 0)
-
使容器以非特权用户身份运行。(不应手动修改。)
- --unused[n] [volume=]<volume>
-
未使用卷的引用。该项供内部使用,不应手动修改。
pct shutdown <vmid> [OPTIONS]
关闭容器。这会触发容器的正常关机,详情请参见 lxc-stop(1)。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --forceStop <boolean> (default = 0)
-
确保容器停止。
- --timeout <integer> (0 - N) (default = 60)
-
等待最大超时时间,单位为秒。
pct snapshot <vmid> <snapname> [OPTIONS]
创建容器快照。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- <snapname>: <string>
-
快照名称。
- --description <string>
-
文本说明或注释。
pct start <vmid> [OPTIONS]
启动容器。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --debug <boolean> (default = 0)
-
如果设置,则在启动时启用非常详细的 debug 日志级别。
- --skiplock <boolean>
-
忽略锁 - 只有 root 允许使用该选项。
pct status <vmid> [OPTIONS]
显示 CT 状态。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --verbose <boolean>
-
详细输出格式
pct stop <vmid> [OPTIONS]
停止容器。这会突然停止容器内运行的所有进程。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
- --overrule-shutdown <boolean> (default = 0)
-
停止前尝试中止活动的 vzshutdown 任务。
- --skiplock <boolean>
-
忽略锁 - 只有 root 允许使用该选项。
pct suspend <vmid>
挂起容器。这是实验性功能。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct template <vmid>
创建模板。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct unlock <vmid>
解锁 VM。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
pct unmount <vmid>
卸载容器文件系统。
- <vmid>: <integer> (100 - 999999999)
-
VM 的唯一 ID。
常用命令示例:
pct list pct status <vmid> pct start <vmid> pct shutdown <vmid>
DESCRIPTION
容器是完全虚拟化机器(VM)的轻量级替代方案。它们使用所在主机系统的内核,而不是模拟完整操作系统(OS)。这意味着容器可以直接访问主机系统上的资源。
容器的运行时开销很低,通常可以忽略不计。但也需要考虑一些缺点:
-
Proxmox 容器中只能运行 Linux 发行版。无法在容器内运行其他操作系统,例如 FreeBSD 或 Microsoft Windows。
-
出于安全原因,需要限制对主机资源的访问。因此,容器运行在各自独立的 namespace 中。此外,容器内不允许执行某些 syscall(用户空间对 Linux 内核的请求)。
Proxmox VE 使用 Linux Containers (LXC) 作为底层容器技术。“Proxmox Container Toolkit”(pct)通过提供抽象复杂任务的接口,简化 LXC 的使用和管理。
容器与 Proxmox VE 紧密集成。这意味着它们感知集群设置,并且可以与虚拟机使用相同的网络和存储资源。也可以使用 Proxmox VE 防火墙,或通过 HA 框架管理容器。
主要目标是提供一种既具备虚拟机优势、又没有额外开销的环境。这意味着 Proxmox 容器可归类为`‘系统容器’,而不是`‘应用容器’。
|
|
如果要运行应用容器,例如 Docker 镜像,建议在 Proxmox QEMU 虚拟机内运行它们。这样既可以获得应用容器化的所有优势,也能获得虚拟机提供的优势,例如与主机的强隔离以及在线迁移能力;这些能力在普通容器中并不可用。 |
技术概览
支持的发行版
官方支持的发行版列表如下。
以下发行版的模板可通过我们的软件仓库获取。可以使用 pveam 工具或图形化用户界面下载它们。
CentOS, Almalinux, Rocky Linux
CentOS / CentOS Stream
CentOS Linux 发行版是一个稳定、可预测、可管理且可复现的平台,源自 Red Hat Enterprise Linux (RHEL)的源码。
当前支持版本请参见:
Almalinux
一个开源、由社区拥有和治理、永久免费使用的企业级 Linux 发行版,专注于长期稳定性,提供稳健的生产级平台。AlmaLinux OS 与 RHEL® 和 pre-Stream CentOS 保持 1:1 二进制兼容。
当前支持版本请参见:
容器镜像
容器镜像有时也称为 “templates” 或 “appliances”,是包含运行容器所需全部内容的 tar 归档文件。
Proxmox VE 本身为 最常见的 Linux 发行版 提供多种基础模板。可以使用 GUI 或 pveam(Proxmox VE Appliance Manager 的缩写)命令行工具下载它们。此外,也可以下载 TurnKey Linux 容器模板。
可用模板列表会通过 pve-daily-update timer 每日更新。也可以执行以下命令手动触发更新:
# pveam update
要查看可用镜像列表,请运行:
# pveam available
可以通过指定感兴趣的 section 来限制这个较大的列表,例如基础 system 镜像:
# pveam available --section system system alpine-3.12-default_20200823_amd64.tar.xz system alpine-3.13-default_20210419_amd64.tar.xz system alpine-3.14-default_20210623_amd64.tar.xz system archlinux-base_20210420-1_amd64.tar.gz system centos-7-default_20190926_amd64.tar.xz system centos-8-default_20201210_amd64.tar.xz system debian-9.0-standard_9.7-1_amd64.tar.gz system debian-10-standard_10.7-1_amd64.tar.gz system devuan-3.0-standard_3.0_amd64.tar.gz system fedora-33-default_20201115_amd64.tar.xz system fedora-34-default_20210427_amd64.tar.xz system gentoo-current-default_20200310_amd64.tar.xz system opensuse-15.2-default_20200824_amd64.tar.xz system ubuntu-16.04-standard_16.04.5-1_amd64.tar.gz system ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz system ubuntu-20.04-standard_20.04-1_amd64.tar.gz system ubuntu-20.10-standard_20.10-1_amd64.tar.gz system ubuntu-21.04-standard_21.04-1_amd64.tar.gz
使用这类模板前,需要先将它们下载到某个存储中。如果不确定使用哪个存储,可以直接使用名为 local 的存储。对于集群安装,建议使用共享存储,以便所有节点都能访问这些镜像。
# pveam download local debian-10.0-standard_10.0-1_amd64.tar.gz
现在可以使用该镜像创建容器,并可使用以下命令列出存储 local 上已下载的所有镜像:
# pveam list local local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz 219.95MB
|
|
也可以使用 Proxmox VE Web 界面 GUI 下载、列出和删除容器模板。 |
pct 使用这些模板创建新容器,例如:
# pct create 999 local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz
上面的命令展示了完整的 Proxmox VE 卷标识符。它们包含存储名称,且大多数其他 Proxmox VE 命令都可以使用它们。例如,稍后可以使用以下命令删除该镜像:
# pveam remove local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz
容器设置
常规设置
-
Node:容器将运行所在的物理服务器
-
CT ID:此 Proxmox VE 安装中用于标识容器的唯一编号
-
Hostname:容器主机名
-
Resource Pool:容器和虚拟机的逻辑分组
-
Password:容器 root 密码
-
SSH Public Key:用于通过 SSH 连接 root 账户的公钥
-
Unprivileged container:该选项允许在创建时选择创建特权容器还是非特权容器。
CPU
可以使用 cores 选项限制容器内可见 CPU 数量。它通过 Linux cpuset cgroup(control group)实现。pvestatd 内部的一个特殊任务会定期尝试将正在运行的容器分布到可用 CPU 上。 要查看已分配 CPU,请运行以下命令:
# pct cpusets --------------------- 102: 6 7 105: 2 3 4 5 108: 0 1 ---------------------
容器直接使用主机内核。容器内所有任务都由主机 CPU 调度器处理。Proxmox VE 默认使用 Linux CFS(Completely Fair Scheduler)调度器,该调度器提供额外的带宽控制选项。
|
cpulimit:
|
可以使用该选项进一步限制分配的 CPU 时间。请注意,这是浮点数,因此可以为容器分配两个核心,但将总体 CPU 消耗限制为半个核心。 cores: 2 cpulimit: 0.5 |
|
cpuunits:
|
这是传递给内核调度器的相对权重。数值越大,该容器获得的 CPU 时间越多。该数值相对于所有其他正在运行容器的权重。默认值为 100(如果主机使用 legacy cgroup v1,则为 1024)。可以使用该设置为某些容器赋予更高优先级。 |
内存
|
memory:
|
限制总体内存使用量。对应 memory.limit_in_bytes cgroup 设置。 |
|
swap:
|
允许容器从主机 swap 空间使用额外 swap 内存。对应 memory.memsw.limit_in_bytes cgroup 设置,该值设置为二者之和(memory + swap)。 |
挂载点
- rootfs: [volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器根文件系统。各选项的详细说明见下文。
- mp[n]: [volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器挂载点。可使用特殊语法 STORAGE_ID:SIZE_IN_GiB 分配新卷。
- acl=<boolean>
-
显式启用或禁用 ACL 支持。
- backup=<boolean>
-
是否将该挂载点包含在备份中(仅用于卷挂载点)。
- mountoptions=<opt[;opt...]>
-
rootfs/mps 的额外挂载选项。
- mp=<Path>
-
从容器内部看到的挂载点路径。
出于安全原因,不得包含任何符号链接。 - quota=<boolean>
-
在容器内启用用户配额(zfs subvolume 不支持)。
- replicate=<boolean> (default = 1)
-
会将该卷包含在存储复制任务中。
- ro=<boolean>
-
只读挂载点。
- shared=<boolean> (default = 0)
-
将此非卷挂载点标记为在所有节点上可用。
此选项不会自动共享该挂载点,而是假定它已经被共享! - size=<DiskSize>
-
卷大小(只读值)。
- volume=<volume>
-
要挂载到容器中的卷、设备或目录。
当前有三类挂载点:由存储支持的挂载点、bind mount 和 device mount。
rootfs: thin1:base-100-disk-1,size=8G
由存储支持的挂载点
由存储支持的挂载点由 Proxmox VE 存储子系统管理,并有三种不同形式:
-
基于镜像:这是包含单个 ext4 格式文件系统的 raw 镜像。
-
ZFS 子卷:从技术上讲它们是 bind mount,但带有托管存储,因此允许调整大小和创建快照。
-
目录:传递 size=0 会触发特殊情况,即创建目录而不是 raw 镜像。
|
|
对于由存储支持的挂载点卷,特殊选项语法 STORAGE_ID:SIZE_IN_GB 会在指定存储上自动分配指定大小的卷。例如,调用: |
pct set 100 -mp0 thin1:10,mp=/path/in/container
会在存储 thin1 上分配一个 10GB 卷,并用已分配的卷 ID 替换卷 ID 占位符 10,然后在容器中的 /path/in/container 设置挂载点。
Bind 挂载点
Bind mount 允许在容器内访问 Proxmox VE 主机上的任意目录。一些可能的使用场景包括:
-
在客户机中访问主目录
-
在客户机中访问 USB 设备目录
-
在客户机中访问主机上的 NFS 挂载
Bind mount 被视为不受存储子系统管理,因此不能在容器内创建快照或处理 quota。对于非特权容器,可能会遇到由用户映射导致的权限问题,并且无法使用 ACL。
|
|
使用 vzdump 时不会备份 bind mount 挂载点的内容。 |
|
|
出于安全原因,bind mount 只能使用专门为此保留的源目录建立,例如 /mnt/bindmounts 下的目录层级。绝不要将 /、/var 或 /etc 等系统目录 bind mount 到容器中,这会带来很大的安全风险。 |
|
|
bind mount 源路径不得包含任何符号链接。 |
例如,要让 ID 为 100 的容器在路径 /shared 下访问目录 /mnt/bindmounts/shared,请添加如下配置行:
mp0: /mnt/bindmounts/shared,mp=/shared
到 /etc/pve/lxc/100.conf 中。
或者使用 pct 工具:
pct set 100 -mp0 /mnt/bindmounts/shared,mp=/shared
实现相同结果。
网络
- net[n]: name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]
-
指定容器的网络接口。
- bridge=<bridge>
-
要连接该网络设备的网桥。
- firewall=<boolean>
-
控制是否使用此接口的防火墙规则。
- gw=<GatewayIPv4>
-
IPv4 流量的默认网关。
- gw6=<GatewayIPv6>
-
IPv6 流量的默认网关。
- hwaddr=<XX:XX:XX:XX:XX:XX>
-
未设置 I/G(Individual/Group)位的普通 MAC 地址。
- ip=<(IPv4/CIDR|dhcp|manual)>
-
CIDR 格式的 IPv4 地址。
- ip6=<(IPv6/CIDR|auto|dhcp|manual)>
-
CIDR 格式的 IPv6 地址。
- link_down=<boolean>
-
此接口是否应断开连接(类似拔掉网线)。
- mtu=<integer> (64 - 65535)
-
接口的最大传输单元。 (lxc.network.mtu)
- name=<string>
-
从容器内部看到的网络设备名称。 (lxc.network.name)
- rate=<mbps>
-
对该接口应用速率限制。
- tag=<integer> (1 - 4094)
-
此接口的 VLAN 标签。
- trunks=<vlanid[;vlanid...]>
-
允许通过此接口的 VLAN ID。
- type=<veth>
-
网络接口类型。
容器的自动启动和关闭
要在主机系统启动时自动启动容器,可以在 Web 界面中容器的 Options 面板选择 Start at boot 选项,或运行以下命令:
# pct set CTID -onboot 1
-
Start/Shutdown order:定义启动顺序优先级。例如,如果希望 CT 最先启动,可将其设置为 1。(关闭时使用反向启动顺序,因此启动顺序为 1 的容器会最后关闭)
-
Startup delay:定义该容器启动与后续容器启动之间的间隔。例如,如果希望等待 240 秒后再启动其他容器,可将其设置为 240。
-
Shutdown timeout:定义 Proxmox VE 在发出关闭命令后等待容器离线的秒数。默认值为 60,这意味着 Proxmox VE 会发出关闭请求,等待 60s 让机器离线;如果 60s 后机器仍在线,则通知关闭操作失败。
请注意,未设置启动/关闭顺序参数的容器始终会在已设置该参数的容器之后启动,并且该参数只对同一主机本地运行的机器有意义,不是集群范围参数。
如果需要在主机启动与第一个容器启动之间加入延迟,请参见 Proxmox VE 节点管理 章节。
安全注意事项
容器使用主机系统内核。这会向恶意用户暴露攻击面。通常,完整虚拟机提供更好的隔离。如果向未知或不可信人员提供容器,应考虑这一点。
为了降低攻击面,LXC 使用 AppArmor、CGroups 和内核 namespace 等多种安全特性。
AppArmor
AppArmor profile 用于限制对潜在危险操作的访问。某些系统调用(例如 mount)会被禁止执行。
要跟踪 AppArmor 活动,请使用:
# dmesg | grep apparmor
虽然不建议这样做,但可以为容器禁用 AppArmor。这会带来安全风险。如果系统配置错误,或存在 LXC/Linux 内核漏洞,某些 syscall 在容器内执行时可能导致权限提升。
要为容器禁用 AppArmor,请在位于 /etc/pve/lxc/CTID.conf 的容器配置文件中添加以下行:
lxc.apparmor.profile = unconfined
|
|
请注意,不建议在生产环境中这样做。 |
Control Groups(cgroup)
cgroup 是一种内核机制,用于按层级组织进程并分配系统资源。
通过 cgroups 控制的主要资源包括 CPU 时间、内存和 swap 限制,以及对设备节点的访问。cgroups 也用于在创建快照前 "freeze" 容器。
自 Proxmox VE 7.0 起,默认环境为纯 cgroupv2。此前使用 "hybrid" 设置,资源控制主要在 cgroupv1 中完成,并额外使用一个 cgroupv2 controller;该 controller 可通过 cgroup_no_v1 内核命令行参数接管部分子系统。(详情请参见 内核参数文档。)
CGroup 版本兼容性
就 Proxmox VE 而言,纯 cgroupv2 与旧 hybrid 环境的主要区别在于:使用 cgroupv2 时,内存和 swap 现在可以独立控制。容器的内存和 swap 设置可以直接映射到这些值;而此前只能限制内存上限以及内存与 swap *总和*的上限。
另一个重要区别是 devices controller 的配置方式完全不同。因此,纯 cgroupv2 环境目前不支持文件系统 quota。
要在纯 cgroupv2 环境中运行,容器操作系统需要支持 cgroupv2。运行 systemd 231
或更新版本的容器支持 cgroupv2
[this includes all newest major versions of container
templates shipped by Proxmox VE]
;不使用 systemd 作为 init 系统的容器也支持
[for example Alpine Linux]
。
|
|
CentOS 7 和 Ubuntu 16.10 是两个典型的 Linux 发行版版本,其 systemd 版本过旧,无法在 cgroupv2 环境中运行。可以选择:
|
客户机操作系统配置
Proxmox VE 会尝试检测容器中的 Linux 发行版,并修改一些文件。容器启动时会执行的事项简要列表如下:
- set /etc/hostname
-
设置容器名称
- modify /etc/hosts
-
允许解析本地主机名
- network setup
-
将完整网络设置传递给容器
- configure DNS
-
传递 DNS 服务器信息
- adapt the init system
-
例如,修正生成的 getty 进程数量
- set the root password
-
创建新容器时设置 root 密码
- rewrite ssh_host_keys
-
确保每个容器拥有唯一密钥
- randomize crontab
-
避免所有容器中的 cron 同时启动
Proxmox VE 所做更改会被注释标记包围:
# --- BEGIN PVE --- <data> # --- END PVE ---
这些标记会插入到文件中的合理位置。如果此类段落已存在,则会就地更新且不会移动。
可以通过为某个文件添加 .pve-ignore. 文件来阻止修改。例如,如果文件 /etc/.pve-ignore.hosts 存在,则不会触碰 /etc/hosts 文件。可以通过以下命令创建一个简单空文件:
# touch /etc/.pve-ignore.hosts
大多数修改依赖 OS,因此会因发行版和版本不同而不同。可以通过手动将 ostype 设置为 unmanaged 完全禁用修改。
OS 类型检测通过检查容器内的特定文件完成。Proxmox VE 首先检查 /etc/os-release 文件
[/etc/os-release replaces the multitude of per-distribution
release files https://manpages.debian.org/stable/systemd/os-release.5.en.html]
。
如果该文件不存在,或不包含清晰可识别的发行版标识符,则检查以下发行版专用 release 文件。
- Ubuntu
-
检查 /etc/lsb-release(DISTRIB_ID=Ubuntu)
- Debian
-
测试 /etc/debian_version
- Fedora
-
测试 /etc/fedora-release
- RedHat 或 CentOS
-
测试 /etc/redhat-release
- ArchLinux
-
测试 /etc/arch-release
- Alpine
-
测试 /etc/alpine-release
- Gentoo
-
测试 /etc/gentoo-release
|
|
如果配置的 ostype 与自动检测到的类型不同,容器启动会失败。 |
容器存储
Proxmox VE LXC 容器存储模型比传统容器存储模型更灵活。一个容器可以有多个挂载点。这使得每个应用都可以使用最适合的存储。
例如,容器的根文件系统可以位于较慢且廉价的存储上,而数据库可以通过第二个挂载点放在快速的分布式存储上。更多详情请参见 挂载点 章节。
可以使用 Proxmox VE 存储库支持的任何存储类型。这意味着容器可以存储在本地存储(例如 lvm、zfs 或目录)、共享外部存储(如 iSCSI、NFS),甚至 Ceph 等分布式存储系统上。如果底层存储支持快照或克隆等高级存储特性,也可以使用这些特性。vzdump 备份工具可以使用快照提供一致的容器备份。
此外,本地设备或本地目录可以使用 bind mounts 直接挂载。这使容器能够以几乎零开销访问本地资源。Bind mount 也可作为容器之间共享数据的简单方式。
FUSE 挂载
|
|
由于 Linux 内核 freezer 子系统存在问题,强烈不建议在容器内使用 FUSE 挂载,因为在 suspend 或 snapshot 模式备份时需要冻结容器。 |
如果无法用其他挂载机制或存储技术替代 FUSE 挂载,可以在 Proxmox 主机上建立 FUSE 挂载,并使用 bind mount 挂载点使其在容器内可访问。
在容器内使用 Quota
Quota 允许在容器内限制每个用户可使用的磁盘空间量。
|
|
这目前需要使用 legacy cgroups。 |
|
|
这只适用于基于 ext4 镜像的存储类型,并且目前只适用于特权容器。 |
启用 quota 选项会使挂载点使用以下挂载选项: usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0
这允许像在其他系统上一样使用 quota。可以运行以下命令初始化 /aquota.user 和 /aquota.group 文件:
# quotacheck -cmug / # quotaon /
然后使用 edquota 命令编辑 quota。详情请参考容器内所运行发行版的文档。
|
|
需要为每个挂载点运行上述命令,并传入挂载点路径,而不是只传入 /。 |
备份和还原
还原容器备份
可以使用 pct restore 命令还原由 vzdump 创建的容器备份。默认情况下,pct restore 会尽量还原备份中的容器配置。也可以在命令行手动设置容器选项,从而覆盖备份配置(详情请参见 pct manual page)。
|
|
可以使用 pvesm extractconfig 查看 vzdump 归档中包含的备份配置。 |
有两种基本还原模式,区别仅在于对挂载点的处理:
“简单” 还原模式
如果既未显式设置 rootfs 参数,也未显式设置任何可选 mpX 参数,则会按以下步骤从备份的配置文件还原挂载点配置:
-
从备份中提取挂载点及其选项
-
在 storage 参数提供的存储(默认:local)上,为由存储支持的挂载点创建卷。
-
从备份归档中提取文件
-
将 bind 和 device 挂载点添加到还原后的配置(仅限 root 用户)
|
|
由于 bind 和 device 挂载点从不备份,因此最后一步不会还原任何文件,只会还原配置选项。其假设是这类挂载点要么通过其他机制备份(例如 bind mount 到多个容器中的 NFS 空间),要么根本不打算备份。 |
Web 界面中的容器还原操作也使用该简单模式。
使用 pct 管理容器
“Proxmox Container Toolkit”(pct)是用于管理 Proxmox VE 容器的命令行工具。它可用于创建或销毁容器,并控制容器执行(启动、停止、重启、迁移等)。也可用于设置容器配置文件中的参数,例如网络配置或内存限制。
CLI 使用示例
基于 Debian 模板创建容器(假设已通过 Web 界面下载该模板):
# pct create 100 /var/lib/vz/template/cache/debian-10.0-standard_10.0-1_amd64.tar.gz
启动容器 100:
# pct start 100
通过 getty 启动登录会话:
# pct console 100
进入 LXC namespace,并以 root 用户运行 shell:
# pct enter 100
显示配置:
# pct config 100
在容器运行时,添加名为 eth0 的网络接口,将其桥接到主机网桥 vmbr0,并设置地址和网关:
# pct set 100 -net0 name=eth0,bridge=vmbr0,ip=192.168.15.147/24,gw=192.168.15.1
将容器内存减少到 512MB:
# pct set 100 -memory 512
销毁容器始终会将其从 Access Control Lists 中移除,并始终移除该容器的防火墙配置。如果还要额外将容器从复制任务、备份任务和 HA 资源配置中移除,必须启用 --purge。
# pct destroy 100 --purge
将挂载点卷移动到其他存储。
# pct move-volume 100 mp0 other-storage
将卷重新分配给其他 CT。这会从源 CT 移除卷 mp0,并将其作为 mp1 附加到目标 CT。在后台,该卷会被重命名,使名称与新的所有者匹配。
# pct move-volume 100 mp0 --target-vmid 200 --target-volume mp1
获取调试日志
如果 pct start 无法启动某个特定容器,可以通过传递 --debug 标志收集调试输出(将 CTID 替换为容器的 CTID):
# pct start CTID --debug
或者,可以使用以下 lxc-start 命令,该命令会将调试日志保存到 -o 输出选项指定的文件:
# lxc-start -n CTID -F -l DEBUG -o /tmp/lxc-CTID.log
该命令会尝试以前台模式启动容器。要停止容器,请在第二个终端中运行 pct shutdown CTID 或 pct stop CTID。
收集到的调试日志会写入 /tmp/lxc-CTID.log。
|
|
如果自上次尝试使用 pct start 启动以来修改过容器配置,则需要至少运行一次 pct start,以同时更新 lxc-start 使用的配置。 |
迁移
如果有集群,可以使用以下命令迁移容器:
# pct migrate <ctid> <target>
只要容器处于离线状态,该命令即可工作。如果容器定义了本地卷或挂载点,并且目标主机上定义了相同存储,则迁移会通过网络将内容复制到目标主机。
由于技术限制,正在运行的容器无法在线迁移。可以执行 restart migration:先关闭容器,将其移动,然后在目标节点上重新启动。由于容器非常轻量,这通常只会导致数百毫秒停机时间。
可以通过 Web 界面执行 restart migration,也可以在 pct migrate 命令中使用 --restart 标志。
restart migration 会关闭容器,并在指定超时时间后终止它(默认 180 秒)。然后会像离线迁移一样迁移容器,并在完成后在目标节点上启动容器。
配置
/etc/pve/lxc/<CTID>.conf 文件保存容器配置,其中 <CTID> 是给定容器的数字 ID。与存储在 /etc/pve/ 中的所有其他文件一样,它们会自动复制到所有其他集群节点。
|
|
CTID < 100 保留用于内部用途,且 CTID 需要在整个集群范围内唯一。 |
ostype: debian arch: amd64 hostname: www memory: 512 swap: 512 net0: bridge=vmbr0,hwaddr=66:64:66:64:64:36,ip=dhcp,name=eth0,type=veth rootfs: local:107/vm-107-disk-1.raw,size=7G
配置文件是简单文本文件。可以使用普通文本编辑器编辑,例如 vi 或 nano。这有时适合进行小幅修正,但请记住,需要重启容器才能应用此类更改。
因此,通常最好使用 pct 命令生成和修改这些文件,或通过 GUI 完成整个操作。该工具足够智能,可以即时将大多数更改应用到正在运行的容器。此功能称为 “hot plug”,在这种情况下无需重启容器。
如果更改无法热插拔应用,则会注册为待处理更改(在 GUI 中以红色显示)。这些更改只有在重启容器后才会应用。
文件格式
容器配置文件使用简单的冒号分隔 key/value 格式。每行格式如下:
# this is a comment OPTION: value
这些文件中的空行会被忽略,以 # 字符开头的行会被视为注释并同样忽略。
可以直接添加低层 LXC 风格配置,例如:
lxc.init_cmd: /sbin/my_own_init
or
lxc.init_cmd = /sbin/my_own_init
这些设置会直接传递给 LXC 低层工具。
快照
创建快照时,pct 会将快照时刻的配置存储到同一配置文件中的独立快照段。例如,创建名为 “testsnapshot” 的快照后,配置文件会类似如下:
memory: 512 swap: 512 parent: testsnaphot ... [testsnaphot] memory: 512 swap: 512 snaptime: 1457170803 ...
有一些与快照相关的属性,例如 parent 和 snaptime。parent 属性用于存储快照之间的父/子关系。snaptime 是快照创建时间戳(Unix epoch)。
选项
- arch: <amd64 | arm64 | armhf | i386 | riscv32 | riscv64> (default = amd64)
-
操作系统架构类型。
- cmode: <console | shell | tty> (default = tty)
-
控制台模式。默认情况下,console 命令会尝试连接到一个可用的 tty 设备。将 cmode 设置为 console 时,它会改为尝试附加到 /dev/console。如果将 cmode 设置为 shell,则会直接在容器内调用 shell(不登录)。
- console: <boolean> (default = 1)
-
为容器附加一个控制台设备(/dev/console)。
- cores: <integer> (1 - 8192)
-
分配给容器的核心数量。默认情况下,容器可以使用所有可用核心。
- cpulimit: <number> (0 - 8192) (default = 0)
-
CPU 使用限制。
如果计算机有 2 个 CPU,则总共有 2 份 CPU 时间。值 0 表示不限制 CPU。 - cpuunits: <integer> (0 - 500000) (default = cgroup v1: 1024, cgroup v2: 100)
-
容器的 CPU 权重。该参数用于内核公平调度器。数值越大,该容器获得的 CPU 时间越多。 该数值相对于所有其他正在运行的来宾的权重。
- debug: <boolean> (default = 0)
-
尝试输出更详细的信息。目前这只会在启动时启用 debug 日志级别。
- description: <string>
-
容器的描述。显示在 Web 界面中 CT 的概要页。该内容会作为注释保存在配置文件中。
- dev[n]: [[path=]<Path>] [,deny-write=<1|0>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]
-
要直通给容器的设备。
- deny-write=<boolean> (default = 0)
-
禁止容器写入该设备。
- gid=<integer> (0 - N)
-
要分配给设备节点的组 ID。
- mode=<Octal access mode>
-
要在设备节点上设置的访问模式。
- path=<Path>
-
要直通给容器的设备路径。
- uid=<integer> (0 - N)
-
要分配给设备节点的用户 ID。
- features: [force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]
-
允许容器访问高级功能。
- force_rw_sys=<boolean> (default = 0)
-
在非特权容器中将 /sys 挂载为 rw,而不是 mixed。这可能会破坏较新版 (>= v245)systemd-network 下的网络功能。
- fuse=<boolean> (default = 0)
-
允许在容器中使用 fuse 文件系统。请注意,fuse 与 freezer cgroup 之间的交互 可能导致 I/O 死锁。
- keyctl=<boolean> (default = 0)
-
仅用于非特权容器:允许使用 keyctl() 系统调用。在容器内使用 docker 需要此功能。 默认情况下,非特权容器会看到该系统调用不存在。这主要是针对 systemd-networkd 的 变通措施,因为当部分 keyctl() 操作因权限不足而被内核拒绝时,它会将其视为致命错误。 本质上,需要在运行 systemd-networkd 和 docker 之间做出选择。
- mknod=<boolean> (default = 0)
-
允许非特权容器使用 mknod() 添加某些设备节点。这需要内核支持 seccomp trap 到用户空间 (5.3 或更新版本)。此功能为实验性。
- mount=<fstype;fstype;...>
-
允许挂载特定类型的文件系统。该值应为 mount 命令所使用的文件系统类型列表。请注意, 这可能对容器安全性产生负面影响。如果可以访问 loop 设备,挂载文件可能绕过 devices cgroup 的 mknod 权限;挂载 NFS 文件系统可能完全阻塞主机 I/O 并阻止其重启,等等。
- nesting=<boolean> (default = 0)
-
允许嵌套。最好与带有额外 ID 映射的非特权容器一起使用。请注意,这会将主机的 procfs 和 sysfs 内容暴露给来宾。
- hookscript: <string>
-
在容器生命周期的多个阶段执行的脚本。
- hostname: <string>
-
设置容器的主机名。
- lock: <backup | create | destroyed | disk | fstrim | migrate | mounted | rollback | snapshot | snapshot-delete>
-
锁定或解锁容器。
- memory: <integer> (16 - N) (default = 512)
-
容器的 RAM 容量,单位为 MB。
- mp[n]: [volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器挂载点。使用特殊语法 STORAGE_ID:SIZE_IN_GiB 可分配新卷。
- acl=<boolean>
-
显式启用或禁用 ACL 支持。
- backup=<boolean>
-
是否将该挂载点包含在备份中(仅用于卷挂载点)。
- mountoptions=<opt[;opt...]>
-
rootfs/mps 的额外挂载选项。
- mp=<Path>
-
从容器内部看到的挂载点路径。
出于安全原因,不得包含任何符号链接。 - quota=<boolean>
-
在容器内启用用户配额(zfs 子卷不支持)。
- replicate=<boolean> (default = 1)
-
会将该卷包含到存储复制作业中。
- ro=<boolean>
-
只读挂载点。
- shared=<boolean> (default = 0)
-
将此非卷挂载点标记为在所有节点上可用。
此选项不会自动共享挂载点,而是假定它已经被共享。 - size=<DiskSize>
-
卷大小(只读值)。
- volume=<volume>
-
要挂载到容器中的卷、设备或目录。
- nameserver: <string>
-
设置容器的 DNS 服务器 IP 地址。如果既未设置 searchdomain 也未设置 nameserver, 创建时会自动使用主机上的设置。
- net[n]: name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]
-
指定容器的网络接口。
- bridge=<bridge>
-
要附加网络设备的网桥。
- firewall=<boolean>
-
控制是否使用此接口的防火墙规则。
- gw=<GatewayIPv4>
-
IPv4 流量的默认网关。
- gw6=<GatewayIPv6>
-
IPv6 流量的默认网关。
- hwaddr=<XX:XX:XX:XX:XX:XX>
-
常规 MAC 地址,未设置 I/G(Individual/Group)位。
- ip=<(IPv4/CIDR|dhcp|manual)>
-
CIDR 格式的 IPv4 地址。
- ip6=<(IPv6/CIDR|auto|dhcp|manual)>
-
CIDR 格式的 IPv6 地址。
- link_down=<boolean>
-
是否断开该接口(类似拔掉网线)。
- mtu=<integer> (64 - 65535)
-
接口的最大传输单元。(lxc.network.mtu)
- name=<string>
-
从容器内部看到的网络设备名称。(lxc.network.name)
- rate=<mbps>
-
对该接口应用速率限制。
- tag=<integer> (1 - 4094)
-
此接口的 VLAN 标签。
- trunks=<vlanid[;vlanid...]>
-
允许通过该接口的 VLAN ID。
- type=<veth>
-
网络接口类型。
- onboot: <boolean> (default = 0)
-
指定容器是否在系统启动期间自动启动。
- ostype: <alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse | ubuntu | unmanaged>
-
操作系统类型。该值用于在容器内设置配置,并对应 /usr/share/lxc/config/<ostype>.common.conf 中的 lxc 设置脚本。值 unmanaged 可用于跳过特定于操作系统的设置。
- protection: <boolean> (default = 0)
-
设置容器的保护标志。这会阻止对 CT 或 CT 磁盘执行移除/更新操作。
- rootfs: [volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]
-
将卷用作容器根文件系统。
- acl=<boolean>
-
显式启用或禁用 ACL 支持。
- mountoptions=<opt[;opt...]>
-
rootfs/mps 的额外挂载选项。
- quota=<boolean>
-
在容器内启用用户配额(zfs 子卷不支持)。
- replicate=<boolean> (default = 1)
-
会将该卷包含到存储复制作业中。
- ro=<boolean>
-
只读挂载点。
- shared=<boolean> (default = 0)
-
将此非卷挂载点标记为在所有节点上可用。
此选项不会自动共享挂载点,而是假定它已经被共享。 - size=<DiskSize>
-
卷大小(只读值)。
- volume=<volume>
-
要挂载到容器中的卷、设备或目录。
- searchdomain: <string>
-
设置容器的 DNS 搜索域。如果既未设置 searchdomain 也未设置 nameserver,创建时会自动使用主机上的设置。
- startup: `[[order=]\d+] [,up=\d+] [,down=\d+] `
-
启动和关闭行为。Order 是一个非负数,用于定义总体启动顺序。关闭时按相反顺序执行。 此外,可以设置以秒为单位的 up 或 down 延迟,用于指定启动或停止下一个虚拟机前等待的延迟。
- swap: <integer> (0 - N) (default = 512)
-
容器的 SWAP 容量,单位为 MB。
- tags: <string>
-
容器的标签。这只是元信息。
- template: <boolean> (default = 0)
-
启用或禁用模板。
- timezone: <string>
-
容器中使用的时区。如果未设置该选项,则不会执行任何操作。可设置为 host 以匹配主机时区, 也可以设置为 /usr/share/zoneinfo/zone.tab 中的任意时区选项。
- tty: <integer> (0 - 6) (default = 2)
-
指定容器可用的 tty 数量。
- unprivileged: <boolean> (default = 0)
-
使容器以非特权用户身份运行。(不应手动修改。)
- unused[n]: [volume=]<volume>
-
对未使用卷的引用。该项供内部使用,不应手动修改。
- volume=<volume>
-
当前未使用的卷。
锁
容器迁移、快照和备份(vzdump)会设置锁,以防止对受影响容器执行不兼容的并发操作。有时需要手动移除这类锁(例如断电后)。
# pct unlock <CTID>
|
|
只有在确定设置该锁的操作已不再运行时,才执行此操作。 |
版权和免责声明
Copyright © 2022-2025 成都市梨儿方信息技术有限责任公司.
本程序是自由软件:你可以依据自由软件基金会发布的 GNU Affero General Public License 条款重新分发和/或修改本程序;可使用该许可证第 3 版,或(由你选择)任何后续版本。
发布本程序是希望它能够有用,但不提供任何担保;甚至不包含对适销性或特定用途适用性的默示担保。更多详情请参见 GNU Affero General Public License。
你应当已经随本程序收到一份 GNU Affero General Public License 的副本。如果没有,请访问: https://www.gnu.org/licenses/
Copyright © 2007-2022 Proxmox Server Solutions GmbH
本程序是自由软件:你可以依据自由软件基金会发布的 GNU Affero General Public License 条款重新分发和/或修改本程序;可使用该许可证第 3 版,或(由你选择)任何后续版本。
发布本程序是希望它能够有用,但不提供任何担保;甚至不包含对适销性或特定用途适用性的默示担保。更多详情请参见 GNU Affero General Public License。
你应当已经随本程序收到一份 GNU Affero General Public License 的副本。如果没有,请访问: https://www.gnu.org/licenses/




