V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kfansup
V2EX  ›  程序员

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

  •  
  •   kfansup · 2022-07-27 09:57:32 +08:00 · 8947 次点击
    这是一个创建于 874 天前的主题,其中的信息可能已经有所发展或是发生改变。
    真的卡,开几个容器机器就受不了。
    之前 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  
       263 天前
    @dingwen07 默认勾选, 可以取消
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5455 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:49 · PVG 10:49 · LAX 18:49 · JFK 21:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.