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

Docker Compose绑定卷异常:本地目录未生成且容器内容持久化

问题解答

1. 本地./data目录未生成/未被使用的原因及解决

  • 工作目录不匹配:Docker Compose中相对路径(./data)是基于执行docker-compose命令时的当前工作目录,而非docker-compose.yml文件的所在目录。你在Docker Desktop看到挂载路径是/var/www/test/data,说明大概率是在/var/www/test目录下执行的docker-compose命令,而非配置文件所在目录。
  • 权限问题:若当前用户对目标目录无写入权限,Docker自动创建./data目录会失败(你操作无报错,此可能性较低)。
  • 配置缩进错误:需确认volumes字段直接隶属于nginx服务(缩进层级与ports、image一致),缩进错误会导致挂载配置不生效。

解决方法:

  • 切换到docker-compose.yml所在目录,再执行docker-compose up -d;或在命令中指定配置文件路径,同时用绝对路径定义挂载避免工作目录混淆:
    docker-compose -f /path/to/your/docker-compose.yml up -d
    
    修改volumes配置:
    volumes:
      - "/absolute/path/to/your/data:/var/www/html"
    
  • 手动创建目录并赋予合适权限:
    mkdir ./data && chmod 755 ./data
    

2. 容器内/var/www/html内容异常持久化的原因

你看到的"持久化"并非来自Docker卷,核心原因是:

  • 实际挂载了错误的本地目录:结合Docker Desktop的显示,容器绑定的是/var/www/test/data而非你预期的目录。该目录保存了之前的内容,每次启动容器都会挂载它,导致内容保留。而系统重启后该目录内容消失,大概率是/var/www/test属于临时挂载的文件系统(如tmpfs),重启后自动清空。

解决方法:

  • 按照第一个问题的方法修正挂载路径,确保绑定到预期的本地目录;
  • 检查/var/www/test的挂载类型:执行df -h /var/www/test,若为tmpfs则避免将其作为挂载目标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:50:22