diff --git a/apps/proxmox-ve/8.3.1-1/data.yml b/apps/proxmox-ve/8.3.1-1/data.yml new file mode 100644 index 000000000000..c990bb81c48c --- /dev/null +++ b/apps/proxmox-ve/8.3.1-1/data.yml @@ -0,0 +1,27 @@ +additionalProperties: + formFields: + - default: 8006 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: WebUI Port + labelZh: 网页端口 + required: true + rule: paramPort + type: number + - default: 192.168.1.2 + edit: true + envKey: HOST_ADDRESS + labelEn: IP Address + labelZh: IP地址 + required: true + rule: paramCommon + type: text + - default: root + edit: true + envKey: ROOT_PASSWORD + labelEn: Root Password + labelZh: root密码 + random: true + required: true + rule: paramComplexity + type: password diff --git a/apps/proxmox-ve/8.3.1-1/data/pve-cluster/.gitkeep b/apps/proxmox-ve/8.3.1-1/data/pve-cluster/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/apps/proxmox-ve/8.3.1-1/data/pve-manager/.gitkeep b/apps/proxmox-ve/8.3.1-1/data/pve-manager/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/apps/proxmox-ve/8.3.1-1/data/vz/.gitkeep b/apps/proxmox-ve/8.3.1-1/data/vz/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/apps/proxmox-ve/8.3.1-1/docker-compose.yml b/apps/proxmox-ve/8.3.1-1/docker-compose.yml new file mode 100644 index 000000000000..d8eca9c2729a --- /dev/null +++ b/apps/proxmox-ve/8.3.1-1/docker-compose.yml @@ -0,0 +1,45 @@ +services: + proxmox-ve: + image: makedie/proxmox_ve:8.3.1-1 + container_name: ${CONTAINER_NAME} + restart: unless-stopped + tty: true + environment: + - root_password=${ROOT_PASSWORD} + - port=${PANEL_APP_PORT_HTTPS} + - TZ=Asia/Shanghai + # devices: + # - /dev/dri + # - /dev/fuse + # - /dev/kvm + # - /dev/vfio + # - /dev/nvidia0 + # - /dev/nvidiactl + # - /dev/nvidia-uvm + # - /dev/nvidia-uvm-tools + # - /dev/nvidia-vgpu1 + # cap_add: + # - SYS_ADMIN + # - NET_ADMIN + network_mode: host + volumes: + # - /sys/fs/cgroup:/sys/fs/cgroup:ro + # - /sys/fs/cgroup/systemd:/sys/fs/cgroup/systemd + # - /sys/fs/fuse:/sys/fs/fuse + # - /var/run/openvswitch:/host/var/run/openvswitch + - ./data/vz:/var/lib/vz + - ./data/pve-cluster:/var/lib/pve-cluster + - ./data/pve-manager:/var/lib/pve-manager + tmpfs: + - /tmp + - /var/run + - /var/cache + - /run/lock + labels: + createdBy: "Apps" + extra_hosts: + - "shop.maurer-it.com:127.0.0.1" + - "${CONTAINER_NAME}:${HOST_ADDRESS}" + hostname: ${CONTAINER_NAME} + stop_grace_period: 2m + privileged: true \ No newline at end of file diff --git a/apps/proxmox-ve/README.md b/apps/proxmox-ve/README.md new file mode 100644 index 000000000000..4c03c60646da --- /dev/null +++ b/apps/proxmox-ve/README.md @@ -0,0 +1,149 @@ +# 在 Docker 里头跑 Proxmox VE + +## 说明 + +在docker里头跑Proxmox VE +主要是给没kvm管理器但又有kvm的机器用 +可以部署在群辉之类的地方 + +## 使用提示 + +默认账户:root root + +1Panel 安装会修改密码,可在应用商店 -> 参数中查看 + +虚拟机镜像位于 `./data/vz` + +已知问题: + +- CT(LXC)无法使用; + +- 部分机器无法使用网桥; + +- 如有虚拟机正在运行可能无法关闭容器 + +### 检查kvm支持 + +确定一下你的环境是支持kvm的,内核和硬件都要支持,需要在 BIOS 中打开虚拟化选项 + +```shell +ls /dev/kvm +lsmod | grep kvm +cat /proc/modules | grep kvm +cat /proc/cpuinfo | egrep 'vmx|svm' +...... +``` + +如果不支持则无法启动虚拟机 + +### 配置网桥设备 + +在宿主机上配置好虚拟网桥设备,如 Linux Bridge、OVS Bridge,使虚拟机可以桥接到宿主机的网络 + +> 如果您的宿主机运行的是 OpenWrt,无需按本节进行配置,默认已经有 br-lan 网桥,直接使用即可 +> +> 如果您的宿主机运行的是 DSM,无需按本节进行配置,安装 VMM 套件后,默认已经有 ovs_eth0 网桥,直接使用即可 +> +> 如虚拟机无需网络支持,无需按本节进行配置 +> +> 如可接受使用 `qemu args` 添加网络,无需按本节进行配置 + +警告:配置不当可能会导致机器失联 + +已知问题:1. 按本节操作配置后,在部分系统(fnOS)不能正常展示网络信息;部分机器无法使用网桥,会导致无法开机 + +注意:以下仅适用于精简安装的 Debian,如果使用了其他网络管理工具,请自行查找教程配置网桥,并使其重启后仍然生效 + +下面以 Linux Bridge + ifupdown2 为例: + +```shell +apt update +apt install ifupdown2 bridge-utils +``` + +编辑网络接口配置文件:编辑你的网络接口配置文件 `/etc/network/interfaces` + +以下是创建一个基本的`br-lan`网桥的示例配置: + +```shell +auto lo +iface lo inet loopback + +iface enp6s0 inet manual + +auto br-lan +iface br-lan inet static + address 192.168.1.2/24 + gateway 192.168.1.1 + bridge-ports enp6s0 + bridge-stp off + bridge-fd 0 +``` + +请将上面的网卡名称、IP地址、网关等替换为你自己的 + +修改完配置文件后,你需要重启网络服务以应用更改: + +```shell +sudo systemctl restart networking +``` + +### 虚拟机使用已存在的网桥 + +使用 `docker network inspect 1panel-network` 和 `ip a` 查看 `1panel-network` 的网桥设备名称,一般为 br 开头加上网桥设备的 Id,如 `br-71bd14b8df2a` + +直接在 PVE 的网络管理页面(节点->系统->网络)里面创建并使用即可,如提示名字过长或保存失败,编辑容器内的 `/etc/network/interfaces` 文件即可 + +或者进入 PVE 的 Shell 执行以下命令给虚拟机指定网桥: + +VM: + +```bash +qm set 100 -net0 virtio,bridge=br-71bd14b8df2a +``` + +CT: + +```bash +pct set 100 --net0 name=eth0,bridge=br-71bd14b8df2a +``` + +没有 DHCP,虚拟机里面手动配置一下 IP、网关、掩码、DNS 即可 + +```text +IP: 172.18.0.123 +Gateway: 172.18.0.1 +Netmask: 255.255.255.0 +DNS: 223.5.5.5 +``` + +### 直通物理设备 + +支持 USB、PCI-E 硬件直通,需要改一下 GRUB 的启动参数,加上 IOMMU 支持,如 `intel_iommu=on iommu=pt`,具体参考 PVE 的相关教程 + +### ovs相关 + +若将宿主机的`/var/run/openvswitch`挂载入容器`/host/var/run/openvswitch` +且宿主机存在名称带`ovs`字样的网桥,可自动进行部分`ovs-bridge`配置 + +### 无vmbr联网(性能差) + +如果您不方便给 Proxmox VE 的 Docker 容器使用 host 网络类型,您也可以使用 QEMU 的 User 模式进行上网。相当于 QEMU 自动完成了 NAT 操作,只要容器能上网虚拟机就能上网。由于不是专业的转发软件,性能比较一般 + +Proxmox VE不支持直接配置User模式上网,我们需要删除掉 Proxmox VE 里面的网卡,然后手动添加 QEMU 的运行参数 + +```shell +qm set -args '-netdev user,id=n0 -device virtio-net-pci,netdev=n0,mac=02:11:32:2a:76:f2' +``` + +使用此方式联网的虚拟机可以正常出站访问,入站访问需要更多额外配置 + +## 仓库地址 + +### github + + + +### docker hub + + diff --git a/apps/proxmox-ve/data.yml b/apps/proxmox-ve/data.yml new file mode 100644 index 000000000000..ac31ee66760f --- /dev/null +++ b/apps/proxmox-ve/data.yml @@ -0,0 +1,19 @@ +name: Proxmox VE +tags: + - 实用工具 +title: 在 Docker 里头跑 Proxmox VE +description: 在 Docker 里头跑 Proxmox VE +additionalProperties: + key: proxmox-ve + name: Proxmox VE + tags: + - Tool + shortDescZh: 在 Docker 里头跑 Proxmox VE + shortDescEn: Run Proxmox VE in Docker + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://hub.docker.com/r/makedie/proxmox_ve + github: https://github.com/GreenDamTan/DockerFile/tree/dev/ProxmoxVE + document: https://github.com/GreenDamTan/DockerFile/blob/dev/ProxmoxVE/readme.md \ No newline at end of file diff --git a/apps/proxmox-ve/logo.png b/apps/proxmox-ve/logo.png new file mode 100644 index 000000000000..d77f296d2f70 Binary files /dev/null and b/apps/proxmox-ve/logo.png differ