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

279 天前
 UNIXDP
3899 次点击
所在节点    程序员
26 条回复
guiyun
279 天前
我是安装到 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
279 天前
wsl2==linux 子系统
cpstar
279 天前
似乎,如果以 linux 模式运行 docker ,实际上还是会调用 wsl 的东西搞,而且 cmd 和 wsl 的 docker 是相通的
如果是以 win 模式运行,那会生成一个 hyperv 的 windows 虚拟机
yinmin
279 天前
开发环境直接安装 docker 用默认的;生产环境推荐 hyper-v + debian + docker
shyrock
279 天前
除了 wsl1&2 ,还有啥 linux 子系统?
jayeli
279 天前
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
279 天前
wsl2 虽然可以装 docker ,但是很难用,主要是稳定性跟 linux 下的差别巨大,尤其是内存管理,经常会 OutOfMemory 。后续换了 linux 虚拟机后装 docker ,整个世界都变得好起来了。
chinalichen
279 天前
@chinalichen linux 虚拟机使用的是 vmware
ysc3839
279 天前
我一般用 VMware 装个 Ubuntu Server 在里面跑 Docker ,或者一些简单的测试就直接用 VMware 的 vctl
Rennen
279 天前
买台 VPS 更好用
UNIXDP
279 天前
@Alphagocc 我的意思实际上是 wsl2 上安装一个 docker 桌面还是直接在 linux 子系统比如 ubuntu 上安装一个 docker 引擎
UNIXDP
279 天前
@chinalichen 折腾了一个下午我也决定改用虚拟机了
bitcapybara
279 天前
都 wsl 了,可以直接用 podman 呀
cpstar
279 天前
缓缓的打出一个问号,问什么要套娃?难道不知道 docker for windows ?然后如果使用 linux 内核,就是 wsl 那套东西,如果使用 windows 内核就是 hyperv 的一个 win 虚拟机(包括 windows sandbox 也是 hyperv 的一个虚拟机)
studyrun
279 天前
VMware 虚拟机,对 hyper-v 这套一点好感都没,问题太多了,网络、端口问题,内存占用,主机被虚拟化。。。
mohumohu
279 天前
用 Windows docker desktop 就是 wsl2 的啊,他是单独塞了一个 wsl2 发行版进去,而且在 cmd 下运行是 exe ,在其他 wsl2 下运行直接是 docker ,很好用的,如果你是用来构建测试的话。如果你打算是用来当服务器跑的话,还是直接 hyper-v 起一个虚拟机跑最好
mikewang
279 天前
WSL2 + podman
如果习惯 docker 命令还能用 podman-docker 兼容一下
mmdsun
279 天前
Windows 直接安装 docker desktop ,然后打开启用 WSL 2 的选项。
ShadowPower
278 天前
我在 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
278 天前
直接安装 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