Docker运行VGS Satellite配置SATELLITE_ROUTES_PATH时提示文件不存在的解决方法
报错根因
当前命令触发文件不存在错误的核心原因是Docker卷挂载写法错误:
- 原命令中
-v data:/data的写法,会被Docker识别为使用名为data的内置命名卷,而非将本地磁盘上存放路由配置的data文件夹映射到容器内部的/data路径。这类自动创建的命名卷默认是空内容,完全不包含你本地的httbin.yml配置文件,容器查找路径时自然会报文件不存在的错误。
解决方法
按以下步骤调整命令即可正常启动容器:
- 修正绑定挂载的路径写法,把本地实际存放配置的data文件夹映射到容器内的/data目录,根据操作系统选择对应的路径格式:
- Linux/macOS 终端:挂载部分写为
-v "$(pwd)/data:/data" - Windows PowerShell:挂载部分写为
-v "${PWD}/data:/data" - Windows 命令提示符(CMD):挂载部分写为
-v "%cd%/data:/data"
- Linux/macOS 终端:挂载部分写为
- 核对本地配置文件的信息一致性。进入data文件夹的上级目录,执行目录查看命令(Linux/macOS用
ls data,Windows用dir data),确认文件夹内的配置文件名和SATELLITE_ROUTES_PATH指向的文件名完全匹配——容器内的文件路径对大小写敏感,文件名拼写错误、后缀不匹配、漏写字符(比如把httbin写成httpbin、把.yml写成.yaml)都会触发相同的报错。 - 先验证挂载映射是否生效,再启动正式服务。可以运行临时容器输出/data目录的文件列表,确认映射关系正确:
# Linux/macOS 下的挂载验证命令 docker run --rm -v "$(pwd)/data:/data" verygood/satellite ls /data
执行后如果能看到本地的httbin.yml文件,说明挂载正常,就可以使用修正后的命令正式启动服务。
以Linux/macOS环境为例,修正后的完整启动命令为:
docker run --rm -v "$(pwd)/data:/data" -p 8089:8089 -p 9098:9098 -p 9099:9099 -e SATELLITE_ROUTES_PATH=/data/httbin.yml verygood/satellite
内容的提问来源于stack exchange,提问作者v78
相关产品推荐
相关产品推荐

