From ebc62eb1c77fdfa89caa48f916ff9613ccf7c4f7 Mon Sep 17 00:00:00 2001 From: xrgzs Date: Thu, 19 Dec 2024 21:46:43 +0800 Subject: [PATCH] Add proxmox-ve --- apps/proxmox-ve/8.3.1-1/data.yml | 27 ++++ .../8.3.1-1/data/pve-cluster/.gitkeep | 0 .../8.3.1-1/data/pve-manager/.gitkeep | 0 apps/proxmox-ve/8.3.1-1/data/vz/.gitkeep | 0 apps/proxmox-ve/8.3.1-1/docker-compose.yml | 45 ++++++ apps/proxmox-ve/README.md | 149 ++++++++++++++++++ apps/proxmox-ve/data.yml | 19 +++ apps/proxmox-ve/logo.png | Bin 0 -> 3841 bytes 8 files changed, 240 insertions(+) create mode 100644 apps/proxmox-ve/8.3.1-1/data.yml create mode 100644 apps/proxmox-ve/8.3.1-1/data/pve-cluster/.gitkeep create mode 100644 apps/proxmox-ve/8.3.1-1/data/pve-manager/.gitkeep create mode 100644 apps/proxmox-ve/8.3.1-1/data/vz/.gitkeep create mode 100644 apps/proxmox-ve/8.3.1-1/docker-compose.yml create mode 100644 apps/proxmox-ve/README.md create mode 100644 apps/proxmox-ve/data.yml create mode 100644 apps/proxmox-ve/logo.png 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 0000000000000000000000000000000000000000..d77f296d2f708d0b79f6398235272988ef6a9e95 GIT binary patch literal 3841 zcmZ`+XE+;d_eWKUO$Z@vQKROQS`|f&7*C9a?a*NK`f{pD$85k5LeiLJ4l}-c$16PZQf$oFI=UXLXQFCpA7#EAnGk%q|*G(@^ z*Sf9&6rFlW0ynG@^8up{iCO{%R*6sn1CfR-E;Oi26pk~_VNSoqO5G36BlE>+Lz2Gr zPkfx46G_!mqzQI1q$XKpma*GeGCPqn#n<($fx4jP3f7Js0XR9eP9{mw1I`;JCinj$ z|IS<%N@tRF{p4Id!_;{w``r7J^R)N*B11=)=?=w_XSzpg2NEd~+{KiAH|v*}BMdMn zm_0)frW8!fXxolCtfBAqfH2s$&FCfcgNbL7gl&B|di(V8mWZkYC!e94$cW9VOLODX znGTHauuW#8X8TZ(!S?3gKSlF12Z|bXmv19oCM;{8w0V~f>2zOxE7vEpBoZ>ar;Yx( zR@tZ|3Wd4GYq={+*IGec9&Gy}1PDbBEeAmR=h2b@mNo;R7FJ7;`(Q<5_IKGpsG+6X z$g35>N(KV|OM`;-_nyoG&9l^e{HzkIKr>8Iz)}hKF|gs~Nea7OYTYpk&SQ1pKe9nWj0 zm7702Gbw8`wX}KindWL(e-mv-Y=EEjWRKS$xA%cN1p}_o*w+U!TZL3Vog>YM;7NuT zjo}=+sdXp9EXO4{KX#WXNB7MG#?4^aI4%I@TEGdnwesAc*Kx-^Z(U+tZNddIZ+)cP zC9H>k=Lo5s9&Snf7tyLQtfYN)-rmXw=!g zC{*pSac!Bojja$5vXt`}J5}c3*&hL?j*(~?7uuAb>F&Fc)?_6=>zTh;5!tD*RJX!L z8&dR#sU9Ql7nM1ZUI`-pDL-yB=45|je1sj_c=$_vJpxVZp=}OCgaHrI!FKIrmbQ{( z;l-TSYE;3~v{Yr5Zg)b@*6!^yY2DU-Y|M%_MWn9LY$8_mB>j|8IB>1h8QN-jQrh-K z&9+|UEItx+Fk=6p(swB@xkfTy*!9w9PMQcR+-Lp7jesmrx#KG+;_y{YjEJ`qs;dc~ zh@~(uAJhceN%*}E(eQh+SEYdlXwF?Bl_7@CAo#mJ}!?BbxOY~;v@tJZk>OmG*u2) zG`?V5Hp%N0atz@{uZ#IRfghtojC zRv#8>^aI*I70(>l&(?D3SOi|4T9CQ<4q`>DJE4S5@PF7^7u|qZ69OD2?iE0VU<*~_ z+W}7#YIIsRh7`e>HQXUhc)z86(Ny8Ya%m{J-Oj!EEMNZn6(dXaUWE7y7Ii4%UG_C( z@E@O^OC7h$ah=}cfS#;1f(`cy|4`xlRdA@fanv*y(Xn;KBrZ&cU~Ub{waOKX>I;a& ztbx`YroY4_PXWDljPH}i7mf|{GOD(s_scjZ=C~I)D=|8P<0Rtw%qIQ$0u3_ey!EJ*|$e-)}VJ6;)mELQo}Q2*J( zp?8pn*X9L&@qbf2$(UVId)Z<1s!+Ax=GPl#d-9bb?A0^j#9GL=SmW^pj;cpj%~|>f z%?-24xlz|#CP-R=GhcT9l2DIX&BU_H*o|r~tpcIRY3}p0OrNhGy?1g+fN%Svrj?&~ zai2Q!jBytJ0w-6qibKRd zvCYe?t%i;{G4rdWTkxYOEhJ8mFI}PJNXTO(E@m*emu^}2^1S%GICX@WiZPrG>mcQued2MtRG*;a$b6XNF6+sO|_+_4l6n zgtbTc5akSEFFutU?zo1SZB(Jnq+-D#xE-k$*^GC3W=76QfyYsOa6w5=2jYxAg!lJm zu=7D9@pvb;B7&w7lVCf7qO<1SUA{3Q2`lYlv1|rGzp8)7{B-aMgDsZ3ls2XjC}53 zT~)d;Gg}9|8NMAI-NS>WVGbU>zW{dfq^0wPG3{%k?blkjy1d^m%_AcW*uV?$SgfOZ zQy@qw>^)h*7ld$F+31epP}A}jf4T}9U<2nilBW6P_c#L!4x@d_z4~~1DG_jk*=^B) zg`XM`8ZaSWochZkRQwZJFCIl7)UoJzstI2(;~-Wz z<#BoT+W~R)Z|BO4P@`77lZm(htkNX9r`^CPer-|CNHnTgDmx zt4jyr zgQ3Z1wG27ufoCgl1$(mR!(3wn3v)hAjCLe5Vh}z$99rZT9Rc&zvD!n}z8JeEfa8TF z?ygO?a9inEk*|lD<8SLqFO{9ZNXp@se$0x!e3I+T12p{1fnrkEP;AXX#(8*ZuEiRK zmH#y!iuZu}oemQO`kR4@n%mXgUHx_GykRT_5raD+#ENf5j`DkM=|T@#ugQTwKTari zmup1gj(D{6yj@Xp|4g8qDg5(T__pCE^P@YM=8|n8#ZXPBWhBcSwBuW84DIom+-Vjl z%YXGtuiHef>i{gbLR<+kr_MPjer@mvFU*R*SJgr)2%ez4vdCct%2z_p`ExP(I0z=DYHxRV@gE2;YLa>;6f z3d(l2+tRTOuI)<_L(6*wx8Nn``mLajHE`|QdfpzWe|H8mFe`crd%C=^Wb{9Jhi!}M zMeHr45{cjCR9vMH_2?g-2abjCZD2XJs^ktQsxxEB2X_R3#NJ4nFkDBXyb)7^CnofYVsb8`-}@`9q zw^Dra5zQS^dpA~yg2z*D|7x2eJ^U(r3a`g0eFrbeChk``jZ+E^4Ht^R`p$puvUMmM z-SqjQ{zD_mB4i|_z+pIf*=8BLG71U&YLHxK+*J|3FwEcl4o%{3jE%nuRKuvX)iW17 z@Dh@y#JFyC-B?Afx02{nN5dPUP&W}sxCjQ-8|#qUAl~=#x(j=?Dkk7&MEI+wVe-aO z)yB8&KSp-3Rx{_PNV682UsDJSTxU3S9Ey!a6(!-TvqoZi&TYFV%GpDi#xid9JB4a= zGsNGTaQDRiszRm3&?hnI`{NOYI}&nMAN+9rF+6XE0|D2-m(W_EV_0=I!Q`jva!S{r z;g|Z=UjofTfnef>d}`f6rCWl-%y{vIsgRq#awFuc+tIhU47wcEIKV+R&S4>6zl+>mqN&Ne}Vumqr_C=sRcY`V~XD2dHoQ z{UCV4{G{|d{{3iH`#BDrlouPsmY)cD`PzhUa)2sd3z6PRbG}j^z(PO0?B8^t5BZhp zFkb5c>hu0h;r5^dia{5^evY|TW}{Y2#-mEv1-I&NSWOSu1=ra=E|w|o8zQro(GIY6 zS)_CO%XJMtz&%(cz;^N80}=o*VE_zo?BC??zaC?iuc*>&vePrl1&F@NtnIfnLu zvWPzL9}P3z_gf~VLV$!OH2jB+q7i9Wepl`X6)0wbOohDAQZ^q@t=jD+=w?COxnr5M zl^6fBZDI<0qs;_3QzNdS@$-A`0rtyx5FOLUTeFC~dw=eH-`Y}$5C&Wh0=ifIFGToX dLF3>BW1