首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
阿里云
wnanbei
V2EX  ›  程序员

Docker for Windows 目前坑还多吗?做开发环境是否可用呢?

  •  
  •   wnanbei · 72 天前 · 3599 次点击
    这是一个创建于 72 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的是想用 Docker 来管理开发环境,一开始由于听说 docker for windows 坑很多,本质上是使用 hyper -v 启用的虚拟机,所以打算用 vscode + VB 虚拟机 + Docker 的方式来做,但是弄到以下情况就弄不下去了:

    • 本地 win 能 ssh 连通虚拟机 ubuntu
    • 虚拟机 ubuntu 能 ssh 连通到 docker 容器,容器已映射端口到虚拟机
    • 虚拟机 ubuntu 端口转发到 win

    但 ssh 还是连不通,可能是防火墙或者权限之类的问题,网上的资料也比较少,考虑到太麻烦最终还是放弃了。

    现在想问的就是直接使用 docker for windows 可行吗,会有哪些比较容易遇到的坑呢?

    31 条回复    2020-01-19 17:36:55 +08:00
    sanjusss
        1
    sanjusss   72 天前
    用了 docker for windows 后,就不能同时运行 vb 或 vm 了。
    wnanbei
        2
    wnanbei   72 天前
    @sanjusss 这个倒是没有问题,docker,vb,vm 这三者选其一就好
    wweir
        3
    wweir   72 天前
    docker remote 是个不错的替代
    anguiao
        4
    anguiao   72 天前 via Android
    上 20H1 吧,WSL 2 可以直接整合 Docker。
    我一般就拿来开数据库什么的,好像挺正常的,端口映射什么的都没问题。
    wnanbei
        5
    wnanbei   72 天前
    @wweir docker remote 指的是 docker remote api 吗?
    xomix
        6
    xomix   72 天前
    开发环境问题不大
    wnanbei
        7
    wnanbei   72 天前
    @anguiao 用 WSL2 的话,跟用 VBox 没有本质区别呀
    niming007zh
        8
    niming007zh   72 天前   ❤️ 1
    各种问题,建议不要使用
    wweir
        9
    wweir   72 天前
    @wnanbei 是啊,服务器上跑个 docker,本地配置一下,默认连上去
    wnanbei
        10
    wnanbei   72 天前
    @wweir 我目的主要还是想用 vscode 的 remote ssh 或者 remote docker 直接进行开发,可以直接运行调试并返回结果
    wweir
        11
    wweir   72 天前
    用了 remote ssh 还要啥自行车,直接使用 server 上的 shell 不香么
    ra1983
        12
    ra1983   72 天前 via Android
    @sanjusss
    去年 vb 不就兼容 hyperv 了么
    今年 vm 也会兼容
    Illusionary
        13
    Illusionary   72 天前
    Windows docker 如何跑 Linux 内核的容器啊。。
    efaun
        14
    efaun   72 天前
    docker toolbox 比 docker for windows 好用多了
    wnanbei
        15
    wnanbei   72 天前
    @wweir 就是 docker 内的 ssh 转发到 server,再转发到本机,这个流程没弄通
    wnanbei
        16
    wnanbei   72 天前
    @efaun toolbox 是调用 vbox 运行 docker 是吗?
    efaun
        17
    efaun   72 天前
    @wnanbei #16 对,可以映射本地端口,可以 ssh,本地还装了 docker machine
    garlics
        18
    garlics   72 天前
    访问太慢,一个请求本地线上还慢的多。
    https://github.com/docker/for-win/issues/188 这个问题几年了都没有解决。
    anguiao
        19
    anguiao   72 天前 via Android
    @wnanbei 确实没有本质区别,但是一些东西自动帮你处理好了,方便很多。
    tfdetang
        20
    tfdetang   72 天前
    我用的是 docker desktop 的测试版(好像这个才能和 wsl2 无缝搭配)。 目前使用感受蛮不稳定的,动不动就起不来。然后很长一段时间突然在 wsl2 下一直提示我没启动 docker (但是在 powershell 下又正常),某次更新后又正常了。如果作为主力开发环境(虽然 remote-container 确实好用),不太建议
    linxiaojialin
        21
    linxiaojialin   72 天前
    我就是 vm 开一个 ubuntu,里面跑 docker+IDE。已经一年了,一直都很顺畅啊!
    wweir
        22
    wweir   72 天前
    @wnanbei vscode ssh 到 linux server,直接在 server 上开发和使用 docker
    wnanbei
        23
    wnanbei   72 天前
    @wweir vscode 直接 ssh 到 linux server 的话,就调用不了 docker 内部的开发环境了
    wnanbei
        24
    wnanbei   72 天前
    @linxiaojialin 你是 vm 里开的一个带桌面的 ubuntu 吗?
    akin
        25
    akin   72 天前
    建议用 vagrant 装虚机+docker 这样用。
    linxiaojialin
        26
    linxiaojialin   72 天前
    @wnanbei 是滴,本地开发的话,肯定装桌面版呀
    kingleid
        27
    kingleid   72 天前
    还是老实用 linux 吧 ,win 的坑还是别进了,还是用 vm 虚吧
    snowfuck
        28
    snowfuck   72 天前
    我目前在 win10 下用 wsl + docker for windows + vscode remote 来开发 go 项目,除了 vscode 的 debug 不行没发现其他什么问题。wsl 我用的 ubuntu 18, 改了下配置将 window 文件挂载到 /c 而不是 /mnt/c,这样直接在 wsl 下 mount windows 目录进 docker 也没有问题。代码放在 /c 下面的目录,两边共享。
    careyhyj
        29
    careyhyj   72 天前
    用 win10 的话,可以尝试 WSL,应该能满足一般开发需要~
    ala2008
        30
    ala2008   72 天前
    刚用上,好像还行。就是没有命令行提示
    Dmego
        31
    Dmego   72 天前
    用 WSL2 没问题, Docker,kubernetes 环境都能满足,目前使用来看唯一缺点就是 IO 性能还需要提高。前不久我在安装环境的时候还整理出了一篇文档,有需要的可以参考:https://dmego.me/2019/12/21/make-wsl2-as-a-productivity-tool
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1857 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:01 · PVG 01:01 · LAX 10:01 · JFK 13:01
    ♥ Do have faith in what you're doing.