You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下Snap安装的VS Code创建Docker开发容器失败求助

解决VSCode Dev Containers扩展Docker构建路径问题

核心原因分析

Snap包安装的VSCode处于沙箱隔离环境中,它生成的/tmp/vsch-username/bootstrap-image/0.292.0属于snap的私有临时空间,未被沙箱限制的Docker daemon无法访问该路径,这才是问题根源,普通权限设置无法突破沙箱隔离。

具体解决方法

方法1:修改Dev Containers的临时存储路径

打开VSCode设置(快捷键Ctrl+,),搜索Dev Containers: Docker Build Path,将默认临时路径改为用户主目录下的自定义文件夹(比如~/vscode-dev-containers-tmp)。此后生成的bootstrap文件会存放在Docker可正常访问的普通目录中,规避沙箱隔离问题。

方法2:替换VSCode安装方式为deb包

  1. 卸载snap版VSCode:
    sudo snap remove code
    
  2. 添加微软官方源并安装deb版:
    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
    sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/packages.microsoft.gpg
    sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
    rm -f packages.microsoft.gpg
    sudo apt update
    sudo apt install code
    
    deb版VSCode无沙箱隔离限制,创建的临时文件可被Docker直接访问。

方法3:配置Docker挂载snap沙箱临时目录

  1. 确认snap版VSCode的临时目录路径:
    snap list code
    
  2. 创建/修改Docker daemon配置文件/etc/docker/daemon.json,添加路径绑定规则:
    {
      "mounts": [
        "type=bind,source=/tmp/vsch-username,destination=/tmp/vsch-username,readonly=false"
      ]
    }
    
  3. 重启Docker服务生效:
    sudo systemctl restart docker
    
    此方法需精准匹配沙箱路径,维护成本较高,优先推荐前两种方案。

内容的提问来源于stack exchange,提问作者Buğra Ekuklu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:33:14