V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
asdasdqqq
V2EX  ›  Linux

求问 pve 7 安装 docker 的最佳方式

  •  
  •   asdasdqqq · 2022-01-27 15:55:34 +08:00 · 17132 次点击
    这是一个创建于 1033 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求问 pve 7 安装 docker 的最佳方式

    1 、安装在宿主机上,也就是 debian11

    2 、安装在 lxc 上,模板选 debian11

    3 、安装在 vm 上,用 debian11 镜像

    2 和 3 在性能上有无实质性区别

    我的是一台家用 aio 服务器 J4125_16GB 需求是一些 docker 服务:如 mysql 、homeassistant 、openwrt 、jellyfin 等

    29 条回复    2023-09-30 11:02:35 +08:00
    jhytxy
        1
    jhytxy  
       2022-01-27 15:59:32 +08:00 via iPhone
    盲猜 2 会有兼容问题
    2i2Re2PLMaDnghL
        2
    2i2Re2PLMaDnghL  
       2022-01-27 16:00:06 +08:00
    性能上来说,2 和 3 的区别肯定比 1 和 2 的大
    一般见到的推荐是只要内核还适用,就装在一个 LXC 里。
    ByteCat
        3
    ByteCat  
       2022-01-27 16:49:01 +08:00
    不要安装在 LXC 容器里,毕竟它本来就是容器,会出现奇怪的、无法解决的兼容性问题(别问我怎么知道的)。
    也不是很推荐污染 Proxmox VE 的环境,直接安装在宿主机上也不便于备份。
    我是专门起了一个 VM 来安装 Docker 的,只干 Dockers 的活。
    TerranceL
        4
    TerranceL  
       2022-01-27 16:52:38 +08:00
    我是装在黑群晖的 VM 里。。因为 debian/ubuntu 我不会挂载白群晖的目录 =。=
    aptupdate
        5
    aptupdate  
       2022-01-27 16:57:54 +08:00 via iPhone
    在用 alpine 模板的 LXC ,建了仨分别用做 adg Home 和 docker 服务,还有个平时做测试。alpine 体积小方便配置用下来一直挺稳,到目前还没遇到过很难解决的依赖问题。
    Debian 更全面但是跑 docker 好像不用特别在意依赖和包,不如选个小巧点的。
    aptupdate
        6
    aptupdate  
       2022-01-27 17:05:15 +08:00 via iPhone
    @TerranceL 我刚开始也是在黑群晖跑 docker ,可视化配置很方便,不过自从发生过一次修改配置导致黑群晖起不来之后就把 docker 服务单独跑了。现在是能拆的服务都拆到不同的 LXC 里,感觉这样备份管理都方便。
    nbweb
        7
    nbweb  
       2022-01-27 17:07:25 +08:00
    我装在黑群晖里,折腾方便,docker 挂了,不至少重装 pve ,同时把硬盘直通给黑群晖。
    crysislinux
        8
    crysislinux  
       2022-01-27 17:08:56 +08:00 via Android
    跑在 vm 里吧,我也是 4125 这个 u ,绝大部分服务都是监听请求干活儿,CPU 占用很低的。真的需要高性能的场景 4125 这 U 跑在哪儿都没救。
    nbweb
        9
    nbweb  
       2022-01-27 17:09:38 +08:00
    @aptupdate 黑群起不来,重置一下黑群的系统就行了,有虚拟机非常方便,前后十分钟搞定。上次也是把黑群系统搞挂了,把硬盘的第一个分区格式化,重装一下就行了。

    我的账号被 V2EX 降级了,不敢发我博客的链接了,我都写在我博客里。
    aptupdate
        10
    aptupdate  
       2022-01-27 17:17:42 +08:00 via iPhone
    @nbweb 我记得当时恢复 VM 备份都起不来,最后重装才好的。后来考虑到硬盘休眠和就算黑群晖挂了或者关掉也不要影响 docker 服务就都拆开了。
    nbweb
        11
    nbweb  
       2022-01-27 17:25:27 +08:00
    @aptupdate 黑群挂了,就是系统改错文件挂了,是可以无损重装的。重装之后所有的文件都在。如果是原地重装,只需要格式化硬盘的第一个分区即可,开机后,输入 ip 时,会弹出让你重新上传 pat 文件,一路下去就行了。结束时,会问你是否把套件也装回去。
    这种重装方式也适合黑群升级,把引导文件换成新的,把硬盘第一个分区格式化了,上传新的 pat 即可。
    jimmy203308
        12
    jimmy203308  
       2022-01-27 17:28:03 +08:00
    我是 2,用的 Ubuntu_20.04_Cloud_rootfs_v1.2.tar.xz,目前一切正常,不过服务不多,几个速度测试服务,kodexploer,openwrt 宿主是 3865U 的软路由,同时跑了 ikuai
    IvanLi127
        13
    IvanLi127  
       2022-01-27 17:31:18 +08:00   ❤️ 1
    我用 2 的方案,在 LXC 里装 ArchLinux ,再在里面装 Docker ,感觉挺好的 哈哈,1 的话感觉怪怪的,3 似乎没必要。
    asdasdqqq
        14
    asdasdqqq  
    OP
       2022-01-27 17:32:15 +08:00
    @TerranceL
    @nbweb
    pve 黑裙我也装了,群晖装 docker 我是这么考虑的,就是群晖的命令行很多软件没有,用起来不是很顺手
    所以打算用 linux 发行版服务器去跑跑 docker
    iridescent0rsy
        15
    iridescent0rsy  
       2022-01-27 17:34:50 +08:00 via Android
    我也是 2 ,开了两个 lxc ,用的 Ubuntu 和 arch 模板,Ubuntu 的稳定跑 docker 服务,arch 的折腾用,都运行有两年了,目前没啥问题。因为磁盘空间不足,还迁移过一次,很稳定
    asdasdqqq
        16
    asdasdqqq  
    OP
       2022-01-27 17:36:32 +08:00
    @IvanLi127 lxc 不太会用,刚买的小主机,我先选 3 先跑 vm 吧,等玩熟练了 pve 在跑 lxc 试试。
    看回帖 2 和 3 也是有意见分歧的,欢迎讨论优劣,如果有实质性的证据更好,😄
    cm2gseh
        17
    cm2gseh  
       2022-01-27 18:32:47 +08:00 via Android
    什么,难道就我选 1 ?
    已经运行了 1 年,没有任何问题,期间还从 PVE6 升级到 PVE7 ,妥妥的!
    Zy143L
        18
    Zy143L  
       2022-01-27 22:43:21 +08:00 via Android
    我是直接跑在宿主里面的
    msg7086
        19
    msg7086  
       2022-01-28 00:22:01 +08:00
    我装宿主机,一点问题都没有。PVE 和 docker 都是 Debian 上的软件包,为什么不能装在一起。
    ruidoBlanco
        20
    ruidoBlanco  
       2022-01-28 04:47:05 +08:00
    我当初也为这个犹豫了挺久。

    现在两台 lxc ,都是本地 compose 连 lxc 里的 docker

    - lxc 1: adguardhome 专用,本来还想跑 netbootxyz ,一直有问题。
    - lxc 2: jellyfin, uptime-kuma, paperless-ng, navidrome, minio, cloudflare tunnel, heimdall

    用 lxc 跑的最好的地方是可以用 bind mount 挂载 host 目录。然后我那些 docker 容器的数据文件都其实是最 host 一块 usb 硬盘的同一个分区里。因为是 bind mount ,所以多少个容器来挂载都不会有问题。
    RheatiN
        21
    RheatiN  
       2022-01-28 08:32:27 +08:00
    官方是不推荐安装在宿主机和 lxc 上的,隔离度不够高,推荐装在 vm 上,装个 rancheros 或者 alpine
    TheSixWings
        22
    TheSixWings  
       2022-01-28 09:11:40 +08:00
    我选 3 ,方便备份
    gam2046
        23
    gam2046  
       2022-01-28 13:36:35 +08:00   ❤️ 1
    @msg7086 #19 当然是可以的,只是不推荐。一个由于 PVE 本身是支持群集的,宿主环境下的内容难以被同步、迁移、故障恢复到其他节点,另一个是安全性,由于宿主环境不能创建快照,如果不慎操作失误,不仅宿主环境可能被破坏,下属的其他虚拟机也可能被影响,同时 Docker 会操作 iptables ,配置失误也可能影响宿主以及其他虚拟机的网络连接。
    cyjme
        24
    cyjme  
       2022-01-28 16:30:31 +08:00
    1.污染宿主机

    2-0.无法备份恢复到其他节点,通过设置特权容器可以恢复,然后重设非特权,但是 docker 依然无法运行。
    2-1.pve 6 升 7 之后,因为 cgroup v2 的升级,docker 需要更新版本才能运行,以后再次升级,也有可能会遇到类似情况。

    3. ok. 但性能有区别,vm 不如 lxc 。


    我之前用的 lxc ,从 6 升到 7 之后,用到 docker 的全部改成了 vm , 方便节点间迁移,即便是迁移到其他 虚拟化平台也 OK 。
    zhengxian
        25
    zhengxian  
       2022-01-28 17:33:15 +08:00
    我在 Ubuntu 虚拟机上跑 docker ,只要属主机够强,根本不用在乎虚拟那点损耗
    986244073
        26
    986244073  
       2022-01-28 20:25:10 +08:00
    我是在 j4125 里面装 arch 然后装 docker
    dann73580
        27
    dann73580  
       2022-03-16 00:35:18 +08:00
    不再意损耗的话,当然可以 vm 里跑 docker 了(记得 cpu 要选 host 获取最大性能)
    但 LXC 内跑 docker 也有他的优势,经过长期实测,LXC 的性能好了不止一点半点,同时常规的 docker 项目完全可以跑起来,没啥兼容性问题;备份也比较方便好用。
    qingtianxie
        28
    qingtianxie  
       2022-10-25 19:47:29 +08:00   ❤️ 2
    If you want to run application containers, for example, Docker images, it is best to run them inside a Proxmox Qemu VM.
    官方文档推荐装 VM 上
    xingzhiyuan
        29
    xingzhiyuan  
       2023-09-30 11:02:35 +08:00   ❤️ 1
    lxc 里面性能最好, 启动也更快,占用更少的内存, 也没有啥兼容性的问题.
    在 vm 里面跑, 内存要占用大一点.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5617 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:04 · PVG 16:04 · LAX 00:04 · JFK 03:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.