You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法访问Redis Docker卷问题咨询:为何未自动创建主机卷?

问题原因分析

你的问题出在卷挂载的格式写错了,导致Docker误解了你的挂载意图,没有正确创建命名卷,反而去查找主机上不存在的路径。

具体来说,你命令中的--volume=data:/data/:rw有个细节错误:容器内路径你写成了/data/(带尾部斜杠),加上后面的:rw,让Docker错误地把data当成了主机的相对路径(而不是命名卷),然后尝试去访问当前目录下的data/文件夹——但这个文件夹不存在,所以就抛出了“ls: data/: No such file or directory”的错误。

关于Docker自动创建卷的说明

你说的没错,Docker确实会自动创建命名卷或匿名卷,但有个前提:挂载格式必须正确。正确的命名卷格式是:
--volume [卷名]:[容器内绝对路径]:[权限]
(或者用短参数-v,格式相同)

这里的核心是:第一个部分(卷名)不能是绝对路径(不以/开头),且格式清晰,Docker才能识别这是一个命名卷,进而自动创建它。如果格式错误,Docker会默认按绑定挂载处理(即挂载主机上的某个路径到容器),而绑定挂载时,Docker不会自动创建主机上不存在的路径(或者在某些场景下无法识别你写的路径,导致报错)。

修正后的命令

把容器内路径的尾部斜杠去掉,修正格式后的命令如下:

docker run --name redis --volume=data:/data:rw -p 6379:6379 -d redis b60c15a0a3e05d7cdb383415192927b4fc1563be5350924a01fe70f6a29ab113

或者更常用的写法(去掉=号,用空格分隔参数):

docker run --name redis -v data:/data:rw -p 6379:6379 -d redis b60c15a0a3e05d7cdb383415192927b4fc1563be5350924a01fe70f6a29ab113

执行这个修正后的命令,Docker会自动创建名为data的命名卷,然后挂载到容器的/data目录,权限为读写(rw),就不会再出现路径不存在的错误了。

内容的提问来源于stack exchange,提问作者Irina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:02:44