windows 上面跑 docker 有什么最佳实践吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kfansup
V2EX    程序员

windows 上面跑 docker 有什么最佳实践吗

  •  
  •   kfansup 2022-07-27 09:57:32 +08:00 10342 次点击
    这是一个创建于 1222 天前的主题,其中的信息可能已经有所发展或是发生改变。
    真的卡,开几个容器机器就受不了。
    之前 docker desktop 忘记关闭自动更新,结果现在界面越更越丑,丑就算了,比以前还更卡?
    43 条回复    2024-03-28 17:41:37 +08:00
    pota
        1
    pota  
       2022-07-27 10:01:37 +08:00
    WSL2 ?
    wxlwsy
        2
    wxlwsy  
       2022-07-27 10:04:23 +08:00
    从来不用 docker desktop 那个 UI 只用命令即可.
    mokeyjay
        3
    mokeyjay  
       2022-07-27 10:05:35 +08:00
    最佳应该是 wsl 2 里跑 docker 而不是 docker desktop
    但如果你代码放在 win 里共享给 wsl 2 ,io 性能又会非常拙计

    没有完美的方案
    hakr
        4
    hakr  
       2022-07-27 10:06:07 +08:00
    docker desktop 难用的一 P, 建议 WSL2 中安装
    kfansup
        5
    kfansup  
    OP
       2022-07-27 10:06:45 +08:00
    pota
        6
    pota  
       2022-07-27 10:06:58 +08:00
    @mokeyjay #3 win 还是推荐直接文件放 wsl2 里面 然后 win 开 ide 编辑 wsl 内的文件
    kfansup
        7
    kfansup  
    OP
       2022-07-27 10:09:35 +08:00
    @pota
    @mokeyjay 是用的 wsl2 ,代码也是共享的,之前命令行用的时候也不是很方便。看来我的使用姿势有问题,是要抛弃 UI 了。
    sbabybird
        8
    sbabybird  
       2022-07-27 10:09:43 +08:00
    经过一番折腾,个人感受:WSL2 下体验最佳,甚至还能使用 nvidia-docker 调用 gpu 资源。
    mokeyjay
        9
    mokeyjay  
       2022-07-27 10:10:11 +08:00
    @pota 同样不行,这样做的话你执行一下 composer install 或者 npm install 之类的命令,ide 可能半个小时都扫描不完
    在 docker 里新生成的文件,ide 里也可能好一会儿才看得到
    dawangyezi
        10
    dawangyezi  
       2022-07-27 10:16:17 +08:00
    远程登录一个 linux 主机,在那上面跑
    hwdef
        11
    hwdef  
       2022-07-27 10:25:39 +08:00
    docker desktop 肯定是有内存管理方面的问题,给多少内存都会吃满,,,然后 docker 还在一直推这个玩意,,连 linux 上都在推,,,
    securityCoding
        12
    securityCoding  
       2022-07-27 10:26:32 +08:00
    限制一下资源?
    ch2
        13
    ch2  
       2022-07-27 10:31:07 +08:00
    卸载 docker desktop ,直接在 wsl2 里装 docker-ce 就行了
    c1273082756
        14
    c1273082756  
       2022-07-27 11:03:19 +08:00
    远程 linux 跑
    pota
        15
    pota  
       2022-07-27 11:15:53 +08:00
    @mokeyjay #9 目前还没遇到这个情况,家里电脑就是直接用\\wsl 方式访问 wsl 内部的文件进行开发,扫描也就比宿主机慢差不多一半时间,也就几分钟就好了
    energetic
        16
    energetic  
       2022-07-27 12:31:58 +08:00   1
    在 linux 虚拟机里面跑 docker ,配置 docker 服务允许远程访问,在 windows 把 docker Client( https://download.docker.com/win/static/stable/x86_64/ )下载下来,用 docker -H 命令连上 linux 虚拟机的 docker ,就可以正常用了。
    jack778
        17
    jack778  
       2022-07-27 12:47:48 +08:00
    卡的一比, 打飞机?
    crstudio
        18
    crstudio  
       2022-07-27 13:30:16 +08:00
    推荐 multipoass
    ByteCat
        19
    ByteCat  
       2022-07-27 13:47:33 +08:00
    通过一台 Linux 主机跑 Docker (假定 IP 为 10.0.1.1 ),在 Windows/macOS 使用 docker-cli `docker -H 10.0.1.1 version`,如果指定环境变量 DOCKER_HOST 还可以省略命令中的 -H 。
    hertzry
        20
    hertzry  
       2022-07-27 13:51:32 +08:00
    Docker Desktop 能自动整合到 WSL 2 里。

    elechi
        21
    elechi  
       2022-07-27 13:58:06 +08:00
    VMWARE 跑虚拟机
    Tianqi
        22
    Tianqi  
       2022-07-27 14:07:38 +08:00
    可以 WSL2 也可以 CMD/PS ,都行,WSL2 舒服点
    c1273082756
        23
    c1273082756  
       2022-07-27 14:23:25 +08:00
    我一般是 git push 后, 远程的 Linux 会自动 pull 然后 docker 重新打包部署
    yedanten
        24
    yedanten  
       2022-07-27 14:27:44 +08:00 via Android
    win 上跑 docker 不如直接开个 vmware 。
    shellic
        25
    shellic  
       2022-07-27 16:46:21 +08:00
    没有,不如直接虚拟机
    insert000
        26
    insert000  
       2022-07-27 16:50:24 +08:00
    我是 虚拟机装个轻量 linux, 跑 docker ,然后端口从虚拟机里面映射出来 。和本地开发一样 。只要虚拟机不崩溃还是很稳定的
    klo424
        27
    klo424  
       2022-07-27 17:24:13 +08:00
    @hertzry #20 是啊!我还在奇怪,docker desktop 默认就是使用 wsl2 的,而且也不卡啊?我感觉这个就是最佳实践了。
    mmdsun
        28
    mmdsun  
       2022-07-27 19:25:14 +08:00 via iPhone
    docker desktop ,设置勾选 WSL2 在 WSL2 里跑
    mokeyjay
        29
    mokeyjay  
       2022-07-27 19:56:38 +08:00
    @pota 请问下你是做什么开发的、用的是什么 ide 呢?
    如果在 docker 下随便 touch 一个新文件,切换到 ide 中,多久之后才能看到它?
    documentzhangx66
        30
    documentzhangx66  
       2022-07-27 19:59:14 +08:00   1
    跑 Docker 最好的实践就是不用 Windows 。

    Windows 的 Hyper-V 以及自带的容器服务,开机会占很多内存,即使不用。

    在 Windows 上用 VMware Workstation 或 vBox 之类的,属于二次虚拟化,性能更差。

    想玩 Docker 的最好实践:

    1.去咸鱼上,买 miniITX ,那种一百元出头能包含主板、CPU 、VGA 输出、千兆网卡。

    2.自己再买内存条与存储介质。

    3.去拼多多上买 50 元左右一个的厨房 5 层架子带轮子的那种。

    4.架子,最上面的那层,也就是第一层,篮子反扣,放第一台电脑的裸主板。

    5.第二层放第一台电脑的存储,建议系统盘:128G SSD ( 64G 拿来做 swap )、虚拟化盘:SSD 、大容量 HDD 。

    6.第三层放两台电脑的电源。

    7.第四层反扣,放第二台电脑的裸主板,

    8.最下面一层放第二台电脑的存储。

    9.放存储的那两层,每层的两侧各装 2 个 12cm 的大 4pin 静音风扇,对着 HDD 吹。

    10.如果数据线或电源线不够长,可能需要加长。
    ragnaroks
        31
    ragnaroks  
       2022-07-27 20:06:19 +08:00
    docker EE 是不需要 hyper 支持的,但是有 2 个问题看你能不能接受;一个是镜像内的文件不会复制到挂载点的实际路径上(这个已经和微软客服确认是 BUG 但不考虑修复),另一个是重启会丢失创建的任何网络(自动创建的 nat 网络除外);其它方面就没啥区别了
    GP1
        32
    GP1  
       2022-07-27 21:50:16 +08:00
    你们在 WSL 里面安装的都是 Ubuntu 吗?
    sprite82
        33
    sprite82  
       2022-07-28 00:26:48 +08:00
    VMware 虚拟机
    ijyuqi
        34
    ijyuqi  
       2022-07-28 09:23:18 +08:00
    虚拟机跑 docker ,设置下虚拟机和本地共享文件夹,跟在 window 下开发没有任何区别。这样还有 Linux 开发环境
    raptor
        35
    raptor  
       2022-07-28 09:53:46 +08:00
    最佳实践就是格掉装 linux ,省了很多莫名其妙的麻烦
    kfansup
        36
    kfansup  
    OP
       2022-07-28 11:33:54 +08:00
    昨天没看 v 站,没想到这么多大佬回复。一些情况统一回复下:Docker Desktop 是已经开了 WSL2 了的,可能是工作机性能不太行,用久了还是会不流畅。之前我是使用 WSL 环境做开发的,其实最早 WSL 出来的时候我就是第一批尝鲜的了,后面因为一些原因吧,要在本机和 WSL 之间切来切去,一套环境经常要配置两次,慢慢就脱离了。
    kfansup
        37
    kfansup  
    OP
       2022-07-28 11:34:25 +08:00
    虚拟机开 docker 的思路没尝试过,有空试试
    kfansup
        38
    kfansup  
    OP
       2022-07-28 11:36:25 +08:00
    @documentzhangx66 #30 偶遇垃...垃圾佬?
    documentzhangx66
        39
    documentzhangx66  
       2022-07-28 12:24:47 +08:00
    @kfansup 我不是专业的垃圾佬,只是喜欢折腾高性价比硬件而已。
    dingwen07
        40
    dingwen07  
       2022-07-28 14:59:12 +08:00
    Docker Desktop 会自动使用 WSL2 啊
    cnit
        41
    cnit  
       2022-07-28 15:39:13 +08:00
    我装了夜神模拟器之后,夜神叫我关闭 hyper-V ,然后 WSL 指定的文件已加密,而且用户没有能力解密。
    feison
        42
    feison  
       2023-04-16 21:27:35 +08:00
    @documentzhangx66 哇,对这个置物架很感兴趣,请 po 张图来看看,哈哈
    Subfire
        43
    Subfire  
       2024-03-28 17:41:37 +08:00
    @dingwen07 默认勾选, 可以取消
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1074 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:38 PVG 01:38 LAX 09:38 JFK 12:38
    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