讨论 win 平台下大家使用 docker,是直接安装在 wsl2 上还是安装在 Linux 子系统上,哪个更好用呢?

2023-08-04 16:29:03 +08:00
 UNIXDP
5138 次点击
所在节点    程序员
26 条回复
guiyun
2023-08-04 16:40:01 +08:00
我是安装到 wsl2 上
没法直接在 wsl2 上安装,需要改一些参数
不过我电脑换成 mac 了,就不知道现在可以直接安装了不

我顺便留一下 wsl2 直接安装启动不起 docker 的解决方法
https://www.guiyunweb.com/archives/wsl2docker%E5%90%AF%E5%8A%A8%E4%B8%8D%E8%B5%B7%E6%9D%A5
Alphagocc
2023-08-04 16:49:31 +08:00
wsl2==linux 子系统
cpstar
2023-08-04 16:51:41 +08:00
似乎,如果以 linux 模式运行 docker ,实际上还是会调用 wsl 的东西搞,而且 cmd 和 wsl 的 docker 是相通的
如果是以 win 模式运行,那会生成一个 hyperv 的 windows 虚拟机
yinmin
2023-08-04 16:52:43 +08:00
开发环境直接安装 docker 用默认的;生产环境推荐 hyper-v + debian + docker
shyrock
2023-08-04 17:00:21 +08:00
除了 wsl1&2 ,还有啥 linux 子系统?
jayeli
2023-08-04 17:10:53 +08:00
wsl2

先启用 systemd
cat <<'EOF' >/etc/wsl.conf
[boot]
systemd=true
EOF

再根据 docker 官方的文档 https://docs.docker.com/engine/install/ ,找到对应的 Linux 发行版安装就可以了

最后 systemctl enable --now docker

如果你想使用 docker desktop ,可以看这里 https://docs.docker.com/desktop/install/windows-install/ ,使用 wsl2 作为 backend ,我用不惯后来就卸载了。
chinalichen
2023-08-04 17:11:44 +08:00
wsl2 虽然可以装 docker ,但是很难用,主要是稳定性跟 linux 下的差别巨大,尤其是内存管理,经常会 OutOfMemory 。后续换了 linux 虚拟机后装 docker ,整个世界都变得好起来了。
chinalichen
2023-08-04 17:12:54 +08:00
@chinalichen linux 虚拟机使用的是 vmware
ysc3839
2023-08-04 20:42:12 +08:00
我一般用 VMware 装个 Ubuntu Server 在里面跑 Docker ,或者一些简单的测试就直接用 VMware 的 vctl
Rennen
2023-08-04 20:46:52 +08:00
买台 VPS 更好用
UNIXDP
2023-08-04 21:09:54 +08:00
@Alphagocc 我的意思实际上是 wsl2 上安装一个 docker 桌面还是直接在 linux 子系统比如 ubuntu 上安装一个 docker 引擎
UNIXDP
2023-08-04 21:11:36 +08:00
@chinalichen 折腾了一个下午我也决定改用虚拟机了
bitcapybara
2023-08-04 21:12:34 +08:00
都 wsl 了,可以直接用 podman 呀
cpstar
2023-08-04 21:18:24 +08:00
缓缓的打出一个问号,问什么要套娃?难道不知道 docker for windows ?然后如果使用 linux 内核,就是 wsl 那套东西,如果使用 windows 内核就是 hyperv 的一个 win 虚拟机(包括 windows sandbox 也是 hyperv 的一个虚拟机)
studyrun
2023-08-04 21:53:39 +08:00
VMware 虚拟机,对 hyper-v 这套一点好感都没,问题太多了,网络、端口问题,内存占用,主机被虚拟化。。。
mohumohu
2023-08-04 22:00:55 +08:00
用 Windows docker desktop 就是 wsl2 的啊,他是单独塞了一个 wsl2 发行版进去,而且在 cmd 下运行是 exe ,在其他 wsl2 下运行直接是 docker ,很好用的,如果你是用来构建测试的话。如果你打算是用来当服务器跑的话,还是直接 hyper-v 起一个虚拟机跑最好
mikewang
2023-08-04 22:02:37 +08:00
WSL2 + podman
如果习惯 docker 命令还能用 podman-docker 兼容一下
mmdsun
2023-08-05 00:21:24 +08:00
Windows 直接安装 docker desktop ,然后打开启用 WSL 2 的选项。
ShadowPower
2023-08-05 10:27:53 +08:00
我在 2017 年的时候整的方案:

装 Hyper-V 上,用 WSL 1

.bashrc 里这样配置:

# connent to Docker for Windows
export DOCKER_HOST=tcp://127.0.0.1:2375

# mount /mnt/c to /c if not already done
if [ ! -d "/c" ] || [ ! "$(ls -A /c)" ]; then
sudo mkdir -p /c
sudo mount --bind /mnt/c /c
fi

if [ ! -d "/d" ] || [ ! "$(ls -A /d)" ]; then
sudo mkdir -p /d
sudo mount --bind /mnt/d /d
fi

# 其他磁盘分区以此类推……

# Change from /mnt/c/... to /c/...
if [ "$(pwd | cut -c -7)" == "/mnt/c/" ] || [ "$(pwd | cut -c -7)" == "/mnt/d/" ]; then
cd "$(pwd | cut -c 5-)"
fi
newbee2000
2023-08-05 10:32:29 +08:00
直接安装 Windows for docker

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/962446

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX