在 Proxmox VE 上创建 Ubuntu 24.04 LXC 容器或完整虚拟机,兼容 Docker‑ready 与 Compose v2,处理 Docker‑in‑LXC 嵌套,自动选择下一个可用的 CTID。
Proxmox VM/容器创建器.是一项面向实际任务的技能,主要用于Create Ubuntu 24.04 LXC 容器或全 VMs 在Proxmox VE. 返回一个已准备好的多克主机, 并使用 SSH 访问. .;Chen to use. "创建 proxmox vm". "创建 proxmox 容器".。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
在 Proxmox VE 上创建 Ubuntu 24.04 LXC 容器或完整虚拟机(VM)。返回一个已预装 Docker 并支持 SSH 访问的主机环境。
这是一个 基础技能,仅负责构建底层基础设施;其他技能将在其上部署具体应用。
| 选择 LXC 的场景 | 选择 VM 的场景 |
|---|---|
| 运行 Docker 容器(如 TheHive、MISP 等) | Security Onion、Zeek(启用 AF_PACKET) |
| 轻量级服务 | 需要加载自定义内核模块 |
| 要求快速启动(约 5 秒) | 需要完整的操作系统级隔离 |
| 多数 SOC 工具 | 基于原始套接字的网络监控 |
默认使用 LXC。 仅当应用程序明确要求内核访问能力时,才应选用 VM。
| 参数 | 默认值 | 是否必需 |
|---|---|---|
| 名称(Name) | - | 是 |
| Proxmox 主机 | proxmox-host (YOUR_PROXMOX_IP) | 否 |
| 类型(Type) | lxc | 否(可选值:lxc 或 vm) |
| CPU 核心数 | 2 | 否 |
| 内存(MB) | 4096 | 否 |
| 磁盘空间(GB) | 8 | 否 |
| 额外安装的软件包 | - | 否 |
# SSH 连接到 Proxmox
ssh proxmox-host "pveversion" || echo "FAIL: Cannot SSH to Proxmox host"
# 检查模板是否存在(LXC)
ssh proxmox-host "pveam list local | grep ubuntu-24.04" || echo "Template not cached, will download"
# 查找下一个可用 CTID
ssh proxmox-host "pct list" | tail -n +2 | awk '{print $1}' | sort -n | tail -1
# 使用该值加 1 作为新 CTID
ssh proxmox-host "pveam list local | grep ubuntu-24.04 || pveam download local ubuntu-24.04-standard_24.04-2_amd64.tar.zst"
NEXT_CTID=$(ssh proxmox-host "cat <(pct list | tail -n +2 | awk '{print $1}') <(qm list | tail -n +2 | awk '{print $1}') 2>/dev/null | sort -n | tail -1")
NEXT_CTID=$((NEXT_CTID + 1))
ssh proxmox-host "pct create $CTID local:vztmpl/ubuntu-24.04-standard_24.04-2_amd64.tar.zst --hostname--memory --cores --rootfs local-lvm: --net0 name=eth0,bridge=vmbr0,ip=dhcp --unprivileged 1 --features nesting=1 --start 1"
关键参数说明:
--unprivileged 1:安全最佳实践--features nesting=1:LXC 内运行 Docker 所必需--start 1:创建后立即启动容器sleep 10 # LXC 启动耗时约 5 秒
# 从 Proxmox 获取 IP 地址
ssh proxmox-host "pct exec $CTID -- hostname -I"
# 或通过 DHCP 查询
ssh proxmox-host "pct exec $CTID -- ip -4 addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1"
bash scripts/post-boot-setup.sh proxmox-host $CTID
或手动执行:
ssh proxmox-host "pct exec $CTID -- bash -c ' apt-get update -qq apt-get install -y -qq docker.io curl git htop systemctl enable docker && systemctl start docker mkdir -p /usr/local/lib/docker/cli-plugins curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose chmod +x /usr/local/lib/docker/cli-plugins/docker-compose '"
ssh proxmox-host "pct exec $CTID -- docker --version && pct exec $CTID -- docker compose version"
当 LXC 不满足需求时,请使用 scripts/create-vm.sh 创建完整虚拟机:
ssh proxmox-host "qm create $VMID --name--memory --cores --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci --scsi0 local-lvm: ,format=raw --ide2 local-lvm:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0 --ciuser deploy --cipassword --ipconfig0 ip=dhcp --start 1"
向调用方报告以下信息:
Container/VM Created:CTID/VMID: Type: lxc | vm IP: SSH: root@ (LXC) or deploy@ (VM) Docker: installed Docker Compose v2: installed
# LXC 清理 ssh proxmox-host "pct stop $CTID && pct destroy $CTID --purge" # VM 清理 ssh proxmox-host "qm stop $VMID && qm destroy $VMID --purge"
详见 references/gotchas.md:
--features nesting=1,Docker 将无法创建网络pveam download 较慢;建议先运行 pveam list local 检查本地是否已缓存pct list 确认可用性相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.7万人学习
共49课时 | 82.4万人学习