Docker挂载主机目录报invalid reference format错,如何持久化应用数据
你遇到的报错是因为执行的挂载命令缺少docker run基础指令和用于声明挂载规则的-v参数,不符合Docker命令语法规范,所以触发invalid reference format错误。
Docker容器生成数据持久化有两种主流实现方式:
1. 绑定挂载(适合需要直接在主机侧访问生成文件的场景)
这种方式直接将主机指定目录和容器内的输出目录做映射,容器写入的内容会直接同步到主机目录。
首先提前在主机创建目标目录避免权限问题:
mkdir -p ./output
然后执行带挂载参数的启动命令,-v参数的规则为-v 主机路径:容器内路径:
docker run -it -p 8501:8501 -v ./output:/output 99aa9d3b7cc1
如果容器内应用使用非root用户运行,需要提前给主机的./output目录开放对应写入权限,避免写入失败。
2. 命名卷挂载(适合仅需要持久化数据、不需要直接从主机侧访问文件的场景)
这种方式由Docker统一管理持久化数据的存储位置,相比绑定挂载性能更好、兼容性更强。
首先创建专属命名卷:
docker volume create app_output
启动时将命名卷挂载到容器内的输出路径:
docker run -it -p 8501:8501 -v app_output:/output 99aa9d3b7cc1
如果后续需要查看卷内数据,可以执行docker volume inspect app_output查看卷在主机的实际存储路径,也可以启动临时容器挂载卷访问内容。
内容的提问来源于stack exchange,提问作者coding
相关产品推荐
相关产品推荐

