V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cxytz01
V2EX  ›  程序员

使用 vmware 还是 docker 来搭建 Linux 实验环境?

  •  
  •   cxytz01 · 2021-11-04 11:24:32 +08:00 · 7242 次点击
    这是一个创建于 897 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人是后端码农,工作(coding 、编译、执行、实验)需要用到 linux ,办公需要用到 windows 或者 mac(各种办公软件,IM 等)。公司不提供开发机器,我也不想弄两台机器,一台装 linux ,一台装 windows 或者 mac 。

    在日常使用中,发现直接进入 docker 容器也可以进行 linux c++实验,速度快,尚未发现哪些坑。相比 vmware ,可以免去 vmware 的启动,vmware 内 linux 的启动。

    在有限的实验次数、实验时间下,发现 docker linux 是可以胜任后端开发的 linux 的实验的。

    请问问大家是如何不依赖外部 linux 机器的条件下,在 windows 或者 mac 上做 linux 实验的? docker 是否更方便?

    ps: 1.此贴不是比较虚拟机和容器的区别,而是讨论虚拟机虚拟 linux 和容器 linux 哪个更易于做后端实验。 2.不讨论 docker 、vmware 提供的超出 linux 本身的特性。 包括但不限于:snapshoot ,网络抖动模拟。

    45 条回复    2021-11-07 14:54:18 +08:00
    Coolxiaobai
        1
    Coolxiaobai  
       2021-11-04 11:35:21 +08:00
    vmware
    cpstar
        2
    cpstar  
       2021-11-04 11:40:37 +08:00
    这个问题本身不就是讨论容器和虚拟机区别的么?

    一系列问题下来,你自己就有答案了,显然是 vmware 啊,甚至上实机做

    docker 是要隔离操作系统差异的应用级虚拟化,如果你的目标不是分发应用,何必在这层上折腾呢?
    xgfan
        3
    xgfan  
       2021-11-04 11:42:08 +08:00 via iPhone   ❤️ 2
    你在 win/mac 上用的 docker ,本身就是套在虚拟机里面的。
    cheng6563
        4
    cheng6563  
       2021-11-04 11:42:11 +08:00   ❤️ 2
    早日脱离 hyperv ,早日获得新生。
    请选择 vmware ,再不济 visualbox
    xgfan
        5
    xgfan  
       2021-11-04 11:42:51 +08:00 via iPhone
    所以你的问题实际上就是,我该用虚拟机,还是虚拟机里面的 docker ?
    cheng6563
        6
    cheng6563  
       2021-11-04 11:44:39 +08:00
    windows 主机下个 docker toolbox 的 docker.exe ,然后远程连虚拟机里的 daemon 就行了,就和 docker on windows 一毛一样了。
    huntagain2008
        7
    huntagain2008  
       2021-11-04 11:46:08 +08:00
    本人非程序员。公司只给了一套 3090 元的电脑+显示器+键盘鼠标。上午用 Win11 ,中午重启电脑用固态 U 盘启动 ArchLinux 。Win11 和 ArchLinux 上我都装了 Docker 。Win11 用的 Docker Desktop WSL2 ,明显感觉 Linux 好用。既然你都是码农了,为何要用 Windows?我一个非程序员都在 Linux 用 libreoffice 用的毫无问题,打印机用 cups 配置好当时就准备完全迁到 Linux 办公了。可惜 Win11 忽然更新补丁后变得没那么卡,于是我又忍了。另外我显示器后绑了一台 VDI 盒子,配合另一台 AOC 显示器用 Win7 虚拟机,用 Synergy 我一套鼠标键盘控制着物理机和虚拟机,想复制粘贴文本到另一边也毫无问题,实在 Linux 不方便用的办公软件就用 Win7 虚拟机就解决了。
    Quarter
        8
    Quarter  
       2021-11-04 12:19:44 +08:00 via iPhone   ❤️ 2
    @huntagain2008 我觉得程序员和用什么系统真没什么关系,除非业务有特殊需求,不然自己喜欢用啥系统就用啥系统,不应该存在“系统绑架”这种奇怪的想法的
    xuanbg
        9
    xuanbg  
       2021-11-04 12:35:41 +08:00   ❤️ 2
    在 vm 里面跑 docker ,这样你就不需要纠结了。我为什么这么干,因为 docker desktop 太坑。
    huntagain2008
        10
    huntagain2008  
       2021-11-04 12:54:07 +08:00
    @Quarter 您说的对。
    dingwen07
        11
    dingwen07  
       2021-11-04 12:59:14 +08:00 via iPhone
    Windows 下我会选择 WSL2
    oxromantic
        12
    oxromantic  
       2021-11-04 13:22:58 +08:00
    既然从事 linux 相关工作,是我的话就是 linux 做主力开发机,非得用 win 的就走 vm
    photon006
        13
    photon006  
       2021-11-04 13:33:53 +08:00
    pve
    0Vincent0Zhang0
        14
    0Vincent0Zhang0  
       2021-11-04 13:36:19 +08:00 via Android
    当然是 docker ,各种组件开箱即用。
    打包编译环境,容器,消息队列,缓存,数据库都有现成的镜像可用。
    如果用 vm 的话,那是装在一起还是每个组件一个 vm 。?同一个组件换版本呢?
    zzzzzdai
        15
    zzzzzdai  
       2021-11-04 14:09:59 +08:00
    multipass 试试
    yuancoder
        16
    yuancoder  
       2021-11-04 14:12:43 +08:00
    可以虚拟机里装 docker
    ripperdev
        17
    ripperdev  
       2021-11-04 14:23:01 +08:00
    Windows + Linux 云服务器
    canbingzt
        18
    canbingzt  
       2021-11-04 15:25:25 +08:00
    vmware 自带了一个 vctl 命令,和 docker 差不多,你可以试一下,但是这个命令明显不如 docker 好用
    waising
        19
    waising  
       2021-11-04 15:35:44 +08:00
    win 和 mac 用 vm 装 linux+docker
    efaun
        20
    efaun  
       2021-11-04 17:10:46 +08:00
    用 vmware ,然后在 linux 里装 docker
    SJ2050cn
        21
    SJ2050cn  
       2021-11-04 17:46:38 +08:00
    windows+wsl2 子系统。
    neroxps
        22
    neroxps  
       2021-11-04 17:51:25 +08:00
    看你的内容涉不涉及 linux 网络和 linux 内核,如果不涉及 wsl2 即可。
    xjkeyser
        23
    xjkeyser  
       2021-11-04 18:01:33 +08:00
    windows+wsl2 不香么
    shengchao
        24
    shengchao  
       2021-11-04 18:05:49 +08:00
    当然 windows + wsl2 + docker ,docker 现在和 wsl2 完美搭配
    huaouo
        25
    huaouo  
       2021-11-04 18:31:09 +08:00
    biguokang
        26
    biguokang  
       2021-11-04 20:31:03 +08:00
    看你用啥电脑,因为 mac 和 window 装 docker desktop 都是先给你装了一个 linux 虚拟机,然后然后容器都在这个 linux 内核上面跑。。。不过你要是用 wsl2 的话,那就可以直接在上面跑容器里,毕竟 wsl2 本身也是个 linux 虚拟机。。。。我的做法是我有一台闲置的台式机,然后台式机装的 vmware exsi ,在上面开若干个 ubuntu server ,然后在里面跑 docker 去,恰好可以玩玩 k8s
    vinle
        27
    vinle  
       2021-11-04 22:01:41 +08:00
    “linux c++实验” 这个场景描述得具体点,楼上的回答就不会这样天马行空了
    cp19890714
        28
    cp19890714  
       2021-11-04 22:18:25 +08:00
    Mac 和 Windows 的 linux-docker 本质都是 linux 虚拟机
    documentzhangx66
        29
    documentzhangx66  
       2021-11-04 22:41:41 +08:00   ❤️ 1
    小孩才做选择,成年人选择都要。这是因为 VMware 与 Docker 各有优劣,因此,根据需求,都拿来用,更好。

    1.Docker 的优势在于,启动、关闭、切换的速度极快,因此,小实验,特别是快照数量不超过 3 个节点的那种,用 Docker 效率会更高。

    2.VMware 的优势在于隔离性强,能做很多更强的实验,并且 VMware 的网卡还能设置一堆高级功能,而且快照是全 GUI 的。当快照树的分支多、复杂,且最后不同节点的快照都需要导出成 ova 标准虚拟机模板时,VMware 就更适合这种场景。并且,高级网络测试时,VMware 的虚拟机的隔离性、网络配置上的隔离性与多功能性,会更好。
    Osk
        30
    Osk  
       2021-11-04 22:55:00 +08:00
    hyper-v 除了不能直通 usb 设备, 显卡稀烂(Linux, 但 5.14 内核会有 hyper-v drm 驱动, 据说 Wayland 下性能好像有提升了). 其它挺好的啊.

    hyper-v 的优势: 自带, 不要钱, 性能优秀, 甚至可以说很优秀.


    不知道大家知道这个小技巧不: 使用默认交换机来 nat 上网时, guest 的 ip 一直变很烦. 为解决此问题, host 可以使用 xxx.mshome.net 这个 dns 名称来访问 xxx 主机名的这个 guest. 不用 ip 了.
    thetbw
        31
    thetbw  
       2021-11-04 23:48:48 +08:00
    @huntagain2008 碰到公司用微信钉钉的就人傻了,不是不能用,就是有点碍事
    jackmod
        32
    jackmod  
       2021-11-05 00:26:45 +08:00
    ubuntu 20.04 host + docker + vmware
    windows 2022 guest
    debian guest + docker
    wireguard -> NAT, vmnet
    从应用到内核,我全都要(
    dayeye2006199
        33
    dayeye2006199  
       2021-11-05 01:33:49 +08:00
    看到有人提 wsl 我就放心了
    EggplantLover
        34
    EggplantLover  
       2021-11-05 09:05:26 +08:00 via Android
    wsl2 想用起来还得固定 ip 加端口映射,好麻烦
    vvhhaaattt
        35
    vvhhaaattt  
       2021-11-05 10:19:27 +08:00 via Android
    wsl 升级 wsl2 后,有个 git 库.git 文件夹里有 object 文件损坏,下了两次了,都是第二天 git 就坏掉了,准备切 vmware 了
    Davic1
        36
    Davic1  
       2021-11-05 11:13:35 +08:00
    用什么虚拟化都行, 重要的是要用 Vagrant!!!!
    pixiaotiao
        37
    pixiaotiao  
       2021-11-05 12:12:17 +08:00 via Android
    我在 windows 开发 在 wsl2 下的 docker 里运行
    2i2Re2PLMaDnghL
        38
    2i2Re2PLMaDnghL  
       2021-11-05 12:22:01 +08:00
    冷知识:你可以裸机装 Linux 然后虚拟机装 Windows
    huntagain2008
        39
    huntagain2008  
       2021-11-05 14:02:53 +08:00
    @thetbw 我的 VDI 虚拟机是 Win7 系统,有钉钉和微信,公司之前报销流程确实用的钉钉,PC 端的微信我几乎不用。当然我现在回复用的 Win11 。我个人用 Linux 只是为了装 B,就好看来说还是 Win11 好看。
    huntagain2008
        40
    huntagain2008  
       2021-11-05 14:07:20 +08:00
    @thetbw Windows 有它的便利,特别是云盘。我现在用 Linux 比较麻烦的是没有 icloud 图形化客户端,icloud 网页版的云盘在批量上传文件时很容易帐户被锁定搞的我又要重新登录一遍。onedrive 在 Linux 是有命令行的软件,但是对我这种小白还是不太友好,就算用也是用 onedrive 浏览器版,有些勉强。
    jin7
        41
    jin7  
       2021-11-05 14:39:50 +08:00
    再买一台电脑
    wccc
        42
    wccc  
       2021-11-05 17:52:24 +08:00
    pve+spice 远程开发
    XIVN1987
        43
    XIVN1987  
       2021-11-06 08:37:22 +08:00
    Windows+WSL
    neutrinos
        44
    neutrinos  
       2021-11-06 21:30:23 +08:00 via iPhone
    用物理机
    youstu
        45
    youstu  
       2021-11-07 14:54:18 +08:00
    推荐 WSL2 +1 ,vmware ,docker 啥的统统不需要
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3466 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:48 · PVG 12:48 · LAX 21:48 · JFK 00:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.