执行docker-compose up/--build时出现挂载路径创建错误求助
问题:Docker-Compose启动时挂载路径错误
执行docker-compose up或docker-compose --build时出现以下错误:
Error response from daemon: error while creating mount source path '/run/desktop/mnt/host/c/Users/Asus/namatus/db/data': mkdir /run/desktop/mnt/host/c: file exists
我的配置文件
docker-compose.yml
version: '3' services: rabbitmq: image: rabbitmq:3-management container_name: rabbitmq hostname: rabbitmq volumes: - /var/lib/rabbitmq ports: - '5672:5672' - '15672:15672' env_file: - .env auth: build: context: ./ dockerfile: ./apps/auth/Dockerfile env_file: - .env depends_on: - rabbitmq - postgres volumes: - .:/usr/src/app - /usr/src/app/node_modules command: npm run start:dev auth namatus: build: context: ./ dockerfile: ./apps/namatus/Dockerfile ports: - '4000:5000' env_file: - .env depends_on: - rabbitmq - auth volumes: - .:/usr/src/app - /usr/src/app/node_modules command: npm run start:dev namatus postgres: image: postgres env_file: - .env ports: - '5432:5432' volumes: - ./db/data:/var/lib/postgresql/data postgres_admin: image: dpage/pgadmin4 depends_on: - postgres env_file: - .env ports: - '15432:80'
Dockerfile
FROM node WORKDIR /usr/src/app COPY package*.json . RUN npm install COPY . .
错误原因及解决方法
原因分析
该错误发生在Windows+WSL2环境的Docker Desktop中,/run/desktop/mnt/host/c是Docker自动映射Windows C盘到WSL2的路径,错误提示说明Docker尝试创建该路径时发现它已存在,大概率是挂载状态异常、文件共享权限问题或路径解析冲突导致。
解决步骤
检查Docker文件共享权限
- 打开Docker Desktop设置 → Resources → File Sharing
- 确保项目所在的盘符(此处为C盘)已被勾选,点击「Apply & Restart」重启Docker。
修复WSL2盘符挂载
- 关闭Docker Desktop,打开WSL2终端(如Ubuntu)执行:
sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c - 重新启动Docker Desktop后再尝试启动容器。
- 关闭Docker Desktop,打开WSL2终端(如Ubuntu)执行:
修改挂载路径格式
将postgres服务的相对挂载路径改为绝对路径:- Windows格式:
volumes: - C:/Users/Asus/namatus/db/data:/var/lib/postgresql/data - WSL2格式:
volumes: - /mnt/c/Users/Asus/namatus/db/data:/var/lib/postgresql/data
- Windows格式:
清理旧挂载缓存
- 执行命令停止并删除所有相关容器和卷:
docker-compose down -v - 手动创建本地目录(确保路径存在):
# Windows PowerShell New-Item -ItemType Directory -Path ./db/data # 或WSL终端 mkdir -p ./db/data - 重新执行
docker-compose up --build
- 执行命令停止并删除所有相关容器和卷:
内容的提问来源于stack exchange,提问作者user22358808
相关产品推荐
相关产品推荐

