本人是后端码农,工作(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 ,网络抖动模拟。
1
Coolxiaobai 2021-11-04 11:35:21 +08:00
vmware
|
2
cpstar 2021-11-04 11:40:37 +08:00
这个问题本身不就是讨论容器和虚拟机区别的么?
一系列问题下来,你自己就有答案了,显然是 vmware 啊,甚至上实机做 docker 是要隔离操作系统差异的应用级虚拟化,如果你的目标不是分发应用,何必在这层上折腾呢? |
3
6IbA2bj5ip3tK49j 2021-11-04 11:42:08 +08:00 via iPhone 2
你在 win/mac 上用的 docker ,本身就是套在虚拟机里面的。
|
4
cheng6563 2021-11-04 11:42:11 +08:00 2
早日脱离 hyperv ,早日获得新生。
请选择 vmware ,再不济 visualbox |
5
6IbA2bj5ip3tK49j 2021-11-04 11:42:51 +08:00 via iPhone
所以你的问题实际上就是,我该用虚拟机,还是虚拟机里面的 docker ?
|
6
cheng6563 2021-11-04 11:44:39 +08:00
windows 主机下个 docker toolbox 的 docker.exe ,然后远程连虚拟机里的 daemon 就行了,就和 docker on windows 一毛一样了。
|
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 虚拟机就解决了。
|
8
Quarter 2021-11-04 12:19:44 +08:00 via iPhone 2
@huntagain2008 我觉得程序员和用什么系统真没什么关系,除非业务有特殊需求,不然自己喜欢用啥系统就用啥系统,不应该存在“系统绑架”这种奇怪的想法的
|
9
xuanbg 2021-11-04 12:35:41 +08:00 2
在 vm 里面跑 docker ,这样你就不需要纠结了。我为什么这么干,因为 docker desktop 太坑。
|
10
huntagain2008 2021-11-04 12:54:07 +08:00
@Quarter 您说的对。
|
11
dingwen07 2021-11-04 12:59:14 +08:00 via iPhone
Windows 下我会选择 WSL2
|
12
oxromantic 2021-11-04 13:22:58 +08:00
既然从事 linux 相关工作,是我的话就是 linux 做主力开发机,非得用 win 的就走 vm
|
13
photon006 2021-11-04 13:33:53 +08:00
pve
|
14
0Vincent0Zhang0 2021-11-04 13:36:19 +08:00 via Android
当然是 docker ,各种组件开箱即用。
打包编译环境,容器,消息队列,缓存,数据库都有现成的镜像可用。 如果用 vm 的话,那是装在一起还是每个组件一个 vm 。?同一个组件换版本呢? |
15
zzzzzdai 2021-11-04 14:09:59 +08:00
multipass 试试
|
16
yuancoder 2021-11-04 14:12:43 +08:00
可以虚拟机里装 docker
|
17
ripperdev 2021-11-04 14:23:01 +08:00
Windows + Linux 云服务器
|
18
canbingzt 2021-11-04 15:25:25 +08:00
vmware 自带了一个 vctl 命令,和 docker 差不多,你可以试一下,但是这个命令明显不如 docker 好用
|
19
waising 2021-11-04 15:35:44 +08:00
win 和 mac 用 vm 装 linux+docker
|
20
efaun 2021-11-04 17:10:46 +08:00
用 vmware ,然后在 linux 里装 docker
|
21
SJ2050cn 2021-11-04 17:46:38 +08:00
windows+wsl2 子系统。
|
22
neroxps 2021-11-04 17:51:25 +08:00
看你的内容涉不涉及 linux 网络和 linux 内核,如果不涉及 wsl2 即可。
|
23
xjkeyser 2021-11-04 18:01:33 +08:00
windows+wsl2 不香么
|
24
shengchao 2021-11-04 18:05:49 +08:00
当然 windows + wsl2 + docker ,docker 现在和 wsl2 完美搭配
|
25
huaouo 2021-11-04 18:31:09 +08:00
|
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
|
27
vinle 2021-11-04 22:01:41 +08:00
“linux c++实验” 这个场景描述得具体点,楼上的回答就不会这样天马行空了
|
28
cp19890714 2021-11-04 22:18:25 +08:00
Mac 和 Windows 的 linux-docker 本质都是 linux 虚拟机
|
29
documentzhangx66 2021-11-04 22:41:41 +08:00 1
小孩才做选择,成年人选择都要。这是因为 VMware 与 Docker 各有优劣,因此,根据需求,都拿来用,更好。
1.Docker 的优势在于,启动、关闭、切换的速度极快,因此,小实验,特别是快照数量不超过 3 个节点的那种,用 Docker 效率会更高。 2.VMware 的优势在于隔离性强,能做很多更强的实验,并且 VMware 的网卡还能设置一堆高级功能,而且快照是全 GUI 的。当快照树的分支多、复杂,且最后不同节点的快照都需要导出成 ova 标准虚拟机模板时,VMware 就更适合这种场景。并且,高级网络测试时,VMware 的虚拟机的隔离性、网络配置上的隔离性与多功能性,会更好。 |
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 了. |
31
thetbw 2021-11-04 23:48:48 +08:00
@huntagain2008 碰到公司用微信钉钉的就人傻了,不是不能用,就是有点碍事
|
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 从应用到内核,我全都要( |
33
dayeye2006199 2021-11-05 01:33:49 +08:00
看到有人提 wsl 我就放心了
|
34
EggplantLover 2021-11-05 09:05:26 +08:00 via Android
wsl2 想用起来还得固定 ip 加端口映射,好麻烦
|
35
vvhhaaattt 2021-11-05 10:19:27 +08:00 via Android
wsl 升级 wsl2 后,有个 git 库.git 文件夹里有 object 文件损坏,下了两次了,都是第二天 git 就坏掉了,准备切 vmware 了
|
36
Davic1 2021-11-05 11:13:35 +08:00
用什么虚拟化都行, 重要的是要用 Vagrant!!!!
|
37
pixiaotiao 2021-11-05 12:12:17 +08:00 via Android
我在 windows 开发 在 wsl2 下的 docker 里运行
|
38
2i2Re2PLMaDnghL 2021-11-05 12:22:01 +08:00
冷知识:你可以裸机装 Linux 然后虚拟机装 Windows
|
39
huntagain2008 2021-11-05 14:02:53 +08:00
@thetbw 我的 VDI 虚拟机是 Win7 系统,有钉钉和微信,公司之前报销流程确实用的钉钉,PC 端的微信我几乎不用。当然我现在回复用的 Win11 。我个人用 Linux 只是为了装 B,就好看来说还是 Win11 好看。
|
40
huntagain2008 2021-11-05 14:07:20 +08:00
@thetbw Windows 有它的便利,特别是云盘。我现在用 Linux 比较麻烦的是没有 icloud 图形化客户端,icloud 网页版的云盘在批量上传文件时很容易帐户被锁定搞的我又要重新登录一遍。onedrive 在 Linux 是有命令行的软件,但是对我这种小白还是不太友好,就算用也是用 onedrive 浏览器版,有些勉强。
|
41
jin7 2021-11-05 14:39:50 +08:00
再买一台电脑
|
42
wccc 2021-11-05 17:52:24 +08:00
pve+spice 远程开发
|
43
XIVN1987 2021-11-06 08:37:22 +08:00
Windows+WSL
|
44
neutrinos 2021-11-06 21:30:23 +08:00 via iPhone
用物理机
|
45
youstu 2021-11-07 14:54:18 +08:00
推荐 WSL2 +1 ,vmware ,docker 啥的统统不需要
|