升级包后执行SAM CLI命令报错:Not supported URL scheme http+docker
解决SAM本地启动API报错"Error: Not supported URL scheme http+docker"
可能原因及对应解决方法
1. Docker环境变量异常
升级后SAM CLI对Docker连接URL的解析逻辑调整,若系统中设置了DOCKER_HOST环境变量且值为http+docker://开头的格式,就会触发该错误。
- 临时修复:执行SAM命令前先取消该环境变量:
unset DOCKER_HOST - 永久修复:找到配置
DOCKER_HOST的文件(比如~/.bashrc、~/.zshrc或系统环境变量配置文件),删除或注释掉相关设置行,重启终端后生效。
2. SAM CLI版本兼容问题
全量升级包可能导致SAM CLI版本与Docker版本不兼容,或是新版本SAM CLI引入了该bug。
- 尝试降级到之前可用的版本:
pip install aws-sam-cli==<你之前使用的版本号> - 或者升级到最新版SAM CLI,看是否已修复该问题:
pip install --upgrade aws-sam-cli
3. Docker Desktop配置问题
如果用Docker Desktop,检查是否开启了"Expose daemon on tcp://localhost:2375 without TLS"选项,该配置可能生成http+docker格式的连接URL。
- 打开Docker Desktop设置,进入「Resources」→「Docker Engine」,检查配置里的
hosts字段,若包含http+docker://条目,修改为tcp://localhost:2375,或者直接使用默认的unix socket(Linux/macOS环境),重启Docker Desktop后重试。
4. 虚拟环境依赖冲突
升级包时可能破坏了虚拟环境内的依赖(比如SAM CLI依赖的docker-py库)版本一致性。
- 重建虚拟环境解决冲突:
# 退出当前虚拟环境 deactivate # 删除旧虚拟环境目录 rm -rf <你的虚拟环境目录> # 重新创建并激活虚拟环境 python -m venv <你的虚拟环境目录> source <你的虚拟环境目录>/bin/activate # 重新安装SAM CLI pip install aws-sam-cli
内容的提问来源于stack exchange,提问作者red house 87
相关产品推荐
相关产品推荐

