V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kfansup
V2EX  ›  程序员

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

  •  
  •   kfansup · Jul 27, 2022 · 10790 views
    This topic created in 1370 days ago, the information mentioned may be changed or developed.
    真的卡,开几个容器机器就受不了。
    之前 docker desktop 忘记关闭自动更新,结果现在界面越更越丑,丑就算了,比以前还更卡?
    43 replies    2024-03-28 17:41:37 +08:00
    pota
        1
    pota  
       Jul 27, 2022
    WSL2 ?
    wxlwsy
        2
    wxlwsy  
       Jul 27, 2022
    从来不用 docker desktop 那个 UI 只用命令即可.
    mokeyjay
        3
    mokeyjay  
       Jul 27, 2022
    最佳应该是 wsl 2 里跑 docker 而不是 docker desktop
    但如果你代码放在 win 里共享给 wsl 2 ,io 性能又会非常拙计

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

    elechi
        21
    elechi  
       Jul 27, 2022
    VMWARE 跑虚拟机
    Tianqi
        22
    Tianqi  
       Jul 27, 2022
    可以 WSL2 也可以 CMD/PS ,都行,WSL2 舒服点
    c1273082756
        23
    c1273082756  
       Jul 27, 2022
    我一般是 git push 后, 远程的 Linux 会自动 pull 然后 docker 重新打包部署
    yedanten
        24
    yedanten  
       Jul 27, 2022 via Android
    win 上跑 docker 不如直接开个 vmware 。
    shellic
        25
    shellic  
       Jul 27, 2022
    没有,不如直接虚拟机
    insert000
        26
    insert000  
       Jul 27, 2022
    我是 虚拟机装个轻量 linux, 跑 docker ,然后端口从虚拟机里面映射出来 。和本地开发一样 。只要虚拟机不崩溃还是很稳定的
    v2er4241
        27
    v2er4241  
       Jul 27, 2022
    @hertzry #20 是啊!我还在奇怪,docker desktop 默认就是使用 wsl2 的,而且也不卡啊?我感觉这个就是最佳实践了。
    mmdsun
        28
    mmdsun  
       Jul 27, 2022 via iPhone
    docker desktop ,设置勾选 WSL2 在 WSL2 里跑
    mokeyjay
        29
    mokeyjay  
       Jul 27, 2022
    @pota 请问下你是做什么开发的、用的是什么 ide 呢?
    如果在 docker 下随便 touch 一个新文件,切换到 ide 中,多久之后才能看到它?
    documentzhangx66
        30
    documentzhangx66  
       Jul 27, 2022   ❤️ 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  
       Jul 27, 2022
    docker EE 是不需要 hyper 支持的,但是有 2 个问题看你能不能接受;一个是镜像内的文件不会复制到挂载点的实际路径上(这个已经和微软客服确认是 BUG 但不考虑修复),另一个是重启会丢失创建的任何网络(自动创建的 nat 网络除外);其它方面就没啥区别了
    GP1
        32
    GP1  
       Jul 27, 2022
    你们在 WSL 里面安装的都是 Ubuntu 吗?
    sprite82
        33
    sprite82  
       Jul 28, 2022
    VMware 虚拟机
    ijyuqi
        34
    ijyuqi  
       Jul 28, 2022
    虚拟机跑 docker ,设置下虚拟机和本地共享文件夹,跟在 window 下开发没有任何区别。这样还有 Linux 开发环境
    raptor
        35
    raptor  
       Jul 28, 2022
    最佳实践就是格掉装 linux ,省了很多莫名其妙的麻烦
    kfansup
        36
    kfansup  
    OP
       Jul 28, 2022
    昨天没看 v 站,没想到这么多大佬回复。一些情况统一回复下:Docker Desktop 是已经开了 WSL2 了的,可能是工作机性能不太行,用久了还是会不流畅。之前我是使用 WSL 环境做开发的,其实最早 WSL 出来的时候我就是第一批尝鲜的了,后面因为一些原因吧,要在本机和 WSL 之间切来切去,一套环境经常要配置两次,慢慢就脱离了。
    kfansup
        37
    kfansup  
    OP
       Jul 28, 2022
    虚拟机开 docker 的思路没尝试过,有空试试
    kfansup
        38
    kfansup  
    OP
       Jul 28, 2022
    @documentzhangx66 #30 偶遇垃...垃圾佬?
    documentzhangx66
        39
    documentzhangx66  
       Jul 28, 2022
    @kfansup 我不是专业的垃圾佬,只是喜欢折腾高性价比硬件而已。
    dingwen07
        40
    dingwen07  
       Jul 28, 2022
    Docker Desktop 会自动使用 WSL2 啊
    cnit
        41
    cnit  
       Jul 28, 2022
    我装了夜神模拟器之后,夜神叫我关闭 hyper-V ,然后 WSL 指定的文件已加密,而且用户没有能力解密。
    feison
        42
    feison  
       Apr 16, 2023
    @documentzhangx66 哇,对这个置物架很感兴趣,请 po 张图来看看,哈哈
    Subfire
        43
    Subfire  
       Mar 28, 2024
    @dingwen07 默认勾选, 可以取消
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4822 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 158ms · UTC 01:05 · PVG 09:05 · LAX 18:05 · JFK 21:05
    ♥ Do have faith in what you're doing.