把 docker 中的 debian 当虚拟机使用有什么潜在问题吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mmr
V2EX    Docker

把 docker 中的 debian 当虚拟机使用有什么潜在问题吗?

  •  
  •   mmr
    confusder 2024-02-16 14:26:07 +08:00 2494 次点击
    这是一个创建于 681 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RouterOS v7 移除了 kvm 支持,只能用 Docker 了,想问问这么使用会有啥问题。

    18 条回复    2024-02-18 13:11:08 +08:00
    A01514035
        1
    A01514035  
       2024-02-16 16:17:26 +08:00
    我首先想到的是持久化问题,但是只要你不删除掉容器,即使宿主机掉电重启,容器也还是可以重新 start 数据依旧还在吧。所以持久化也不是问题?当然要避免误删,不然你安装的软件都没了。挂载目录啥的可以解决数据问题但是 apt 安装的软件还是不太好挂载吧。
    OutOfMemoryError
        2
    OutOfMemoryError  
       2024-02-16 16:29:47 +08:00
    这好像就是所谓的 LXC 吧,在某些需要独立内核的场景下会出问题
    YsHaNg
        3
    YsHaNg  
       2024-02-16 18:36:21 +08:00
    硬件直通麻烦点
    Cola98
        4
    Cola98  
       2024-02-16 18:49:59 +08:00
    注意镜像备份
    FarmerChillax
        5
    FarmerChillax  
       2024-02-16 20:31:21 +08:00
    感觉这是个 X-Y 问题?感觉如果你的使用场景真的在意虚拟化,并不会问这个问题。为什么要把 docker 当虚拟机使用,感觉才是关键
    mmr
        6
    mmr  
    OP
       2024-02-16 20:33:53 +08:00
    @FarmerChillax 因为 ROS 没有 kvm or lxc
    boris1993Jr
        7
    boris1993Jr  
       2024-02-16 21:40:59 +08:00 via iPhone
    @mmr #6 那考虑搞个小主机跑单独的 Debian ?
    毕竟容器在设计的时候就不是这么用的……
    julyclyde
        8
    julyclyde  
       2024-02-16 21:59:28 +08:00
    一方面是持久化
    另一方面有些资源在 cgroup 的隔离度还是不够
    adoal
        9
    adoal  
       2024-02-16 22:22:56 +08:00
    要在物理机的 ROS 里运行虚拟机?这可能真是个 X-Y 问题。
    BeautifulSoap
        10
    BeautifulSoap  
       2024-02-16 22:30:09 +08:00
    持久化是个问题
    要是我的话就直接备份下系统,然后物理机装个 PVE ,然后开个虚拟机专门给 RouterOS 了。剩下想跑什么系统就开几台虚拟机
    FarmerChillax
        11
    FarmerChillax  
       2024-02-16 23:59:02 +08:00   1
    @mmr kvm 也好,lxc 也罢,这两者只是个工具,具体是「你要拿来干什么事?」,是简单的跑几个 web 服务?还是要做编译相关的工作?亦或是驱动相关的开发?简单的说就是「你要干的事情,需不需要这么底层的虚拟化?」,在给出的上下文中,给我的感觉是不需要的,以 docker 自身的用法就足以满足你的需求。(为什么得出这个感觉?因为如果有强烈的相关诉求,自己就很清晰的知道 docker 无法满足)
    slowgen
        12
    slowgen  
       2024-02-17 02:02:46 +08:00
    你要找的是不是 ubuntu 的 lxd
    cctv6
        13
    cctv6  
       2024-02-17 02:37:26 +08:00   1
    我一直把 docker 理解成一个“进程管理”工具,如果只是用来启动程序/管理进程,用 docker 那就没啥问题。docker 内置的一些功能,就有点像“虚拟机”,很容易给人一种 docker 可以当作虚拟机来用的错觉。但是 docker 和常见的虚拟机是完全不同的两套东西,它们实际上谁也不能代替谁。
    leonshaw
        14
    leonshaw  
       2024-02-17 03:14:08 +08:00 via Android
    最大的问题就是内核隔离不够、一些功能受限
    mmr
        15
    mmr  
    OP
       2024-02-17 07:17:23 +08:00
    @FarmerChillax 其实是有点不够的,ROS 的 docker 没有那么多权限可以开,那些需要操作网卡/进程的程序很多跑不了。比如 dnsmasq 之类的。
    FarmerChillax
        16
    FarmerChillax  
       2024-02-17 15:03:37 +08:00
    @mmr #19 「 ROS 的 docker 没有那么多权限可以开」有两点疑惑:
    1. 为什么说是 ROS 的 docker ?
    2. 权限不够可以自己加,为何说没有那么多权限可以开?这个能否具体点?目前我只能粗暴的理解是 Web UI 上没得点?

    可以参考 #13 说的「 docker 是一个进程管理工具」,dnsmasq 之类也是能 docker 运行的 -> https://github.com/tschaffter/docker-dnsmasq

    因此感觉你是对 docker 了解的不够多,使用习惯上还是保持着原本「虚拟化」的使用习惯,而不是「容器化」的使用习惯(当然这也是一个普遍存在的问题)

    ## end
    楼上说的解决办法与 docker 的一些缺陷都很不错,可以按需选择。无论是 kvm 还是 docker ,都是个工具,用正确的使用方法来使用工具才是正途。 就像用叉子也能吃饭,但并没有什么人这么用。
    mmr
        17
    mmr  
    OP
       2024-02-17 15:39:30 +08:00
    @FarmerChillax 我的场景是在 RouterOS 软路由里跑其他系统,RouterOS 中集成的 Docker 为了安全性做出了牺牲,比如不支持操作网卡,没法使用主机网络,没有 tun ,没法 fork 进程…………。也正是因为没法 fork 进程,所以 dnsmasq 没法正常启动。功能受限不是没配置,是没法配置。
    julyclyde
        18
    julyclyde  
       2024-02-18 13:11:08 +08:00
    @cdlnls 你的认识很精确
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3301 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:45 PVG 12:45 LAX 20:45 JFK 23:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86