You need to enable JavaScript to run this app. MacOS部署HDP3.0沙箱运行脚本报sandbox-hdp不存在如何解决
优惠活动
大模型
产品
解决方案
定价
更多

MacOS部署HDP3.0沙箱运行脚本报sandbox-hdp不存在如何解决

MacOS环境Docker部署HDP3.0沙箱报错处理

核心问题定位

从执行日志可以定位两个连续的报错链路:

  • 执行docker run时抛出docker: invalid reference format错误,直接导致sandbox-hdp容器启动失败
  • 后续依赖sandbox-hdp容器执行的postgresql清理操作,因容器不存在抛出Error: No such container: sandbox-hdp
    注:你参考的社区同类报错是磁盘空间不足导致的镜像写入失败,和当前场景触发逻辑完全无关

报错根因

部署脚本的内置版本提取逻辑存在缺陷:
脚本通过docker images | grep hortonworks/sandbox-hdp | awk '{print $2}'自动提取本地sandbox-hdp镜像的版本号,但本地同时存在3.0.1、latest两个标签的同名镜像,命令会输出两行带换行符的内容,被直接拼接到后续的镜像名称参数里,形成带换行的非法镜像引用,直接触发docker的格式校验报错。
对应日志中的异常输出:

+ version='3.0.1
latest'

修复操作步骤

  1. 清理残留的异常部署状态
    依次执行命令清理之前脚本留下的半成品资源:
    # 停止并移除已启动的sandbox-proxy容器
    docker stop sandbox-proxy
    docker rm sandbox-proxy
    # 删除脚本创建的空docker网络
    docker network rm cda
    
  2. 修复部署脚本的版本提取逻辑
    用文本编辑器打开当前目录下的docker-deploy-hdp30.sh文件,找到自动提取版本号的代码行:
    version=$(docker images | grep hortonworks/sandbox-hdp | awk '{print $2}')
    
    有两种修复方式可选,任选其一即可:
    • 直接注释掉这行自动提取代码,手动给version变量赋值固定值:version=3.0.1
    • 修改提取逻辑,过滤掉非数字版本的latest标签,避免输出多行带换行的内容:
      version=$(docker images | grep hortonworks/sandbox-hdp | awk '{print $2}' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$')
      
  3. 重新执行部署脚本
    回到脚本所在目录,重新执行启动命令:
    sh docker-deploy-hdp30.sh
    
    此时docker run步骤的镜像参数会被替换为合法的hortonworks/sandbox-hdp:3.0.1,不会再触发格式校验报错。

部署验证

  • 脚本执行完成后,执行docker ps | grep sandbox,若能同时看到sandbox-hdp、sandbox-proxy两个处于Up状态的容器,说明核心部署流程已完成
  • 等待2-3分钟让沙箱内部服务完成初始化,即可通过宿主机9000端口访问沙箱Web控制台

内容的提问来源于stack exchange,提问作者a.moussa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 07:06:04