Docker镜像运行时如何正确传入可更新的JSON配置文件?
解决Docker容器读取本地可更新JSON文件的问题
问题根源
本地的json_file.json未挂载到容器内部,导致容器内的run.py无法找到该文件。
解决方案
提供两种可行的挂载方式,按需选择:
方式一:挂载单个JSON文件
直接将本地的JSON文件挂载到容器内的指定路径(比如/app目录),修改后的运行命令如下:
# 替换/local/path/to/json_file.json为你本地JSON文件的实际路径 docker run -v /local/input:/app/input -v /local/output:/app/output/ -v /local/path/to/json_file.json:/app/json_file.json -t docker_image model-segmentation-512.h5 /app/json_file.json
- 容器内的
run.py需要读取/app/json_file.json这个路径 - 本地更新JSON文件后,下次运行容器会自动读取最新版本
方式二:挂载JSON文件所在的目录
如果你的JSON文件会和其他配置文件放在同一目录,可以直接挂载整个目录:
# 替换/local/config_dir为你本地存放JSON文件的目录路径 docker run -v /local/input:/app/input -v /local/output:/app/output/ -v /local/config_dir:/app/config -t docker_image model-segmentation-512.h5 /app/config/json_file.json
- 后续更新JSON文件只需替换本地
/local/config_dir下的文件即可 - 容器内通过
/app/config/json_file.json路径访问文件
额外优化(可选)
你的Dockerfile已经设置了ENTRYPOINT ["python", "run.py"],因此运行命令中无需重复写python3 run.py,直接传递参数即可,这样命令更简洁。
内容的提问来源于stack exchange,提问作者Jeanne Chaverot
相关产品推荐
相关产品推荐

