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

执行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尝试创建该路径时发现它已存在,大概率是挂载状态异常、文件共享权限问题或路径解析冲突导致。

解决步骤

  1. 检查Docker文件共享权限

    • 打开Docker Desktop设置 → Resources → File Sharing
    • 确保项目所在的盘符(此处为C盘)已被勾选,点击「Apply & Restart」重启Docker。
  2. 修复WSL2盘符挂载

    • 关闭Docker Desktop,打开WSL2终端(如Ubuntu)执行:
      sudo umount /mnt/c
      sudo mount -t drvfs C: /mnt/c
      
    • 重新启动Docker Desktop后再尝试启动容器。
  3. 修改挂载路径格式
    将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
      
  4. 清理旧挂载缓存

    • 执行命令停止并删除所有相关容器和卷:
      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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:03:14