WSL2中Docker Compose绑定/var/lib/docker/containers/路径不存在求助
Windows Docker Desktop部署Wings服务绑定路径错误问题
环境与配置
在Windows系统使用Docker Desktop,基于官方镜像部署Wings服务,修改后的docker-compose.yml配置如下:
services: db: image: postgres:13 restart: always container_name: corkscrew-db environment: POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: data ports: - "5432:5432" wings: image: ghcr.io/pterodactyl/wings:latest restart: always networks: - wings0 ports: - "8080:8080" - "2022:2022" tty: true environment: TZ: "UTC" WINGS_UID: 988 WINGS_GID: 988 WINGS_USERNAME: pterodactyl volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "/var/lib/docker/containers/:/var/lib/docker/containers/" #\\wsl.localhost\\docker-desktop-data\\data\\docker\\volumes - "./wings/etc/pterodactyl/:/etc/pterodactyl/" - "./wings/var/lib/pterodactyl/:/var/lib/pterodactyl/" - "./wings/var/log/pterodactyl/:/var/log/pterodactyl/" - "./wings/tmp/pterodactyl/:/tmp/pterodactyl/" - "./wings/etc/ssl/certs:/etc/ssl/certs:ro" web: image: node:20.9.0-alpine3.18 container_name: corkscrew-web ports: - "5173:5173" env_file: - .env.dev volumes: - ./:/app - /app/node_modules/ working_dir: /app command: sh -c "yarn && yarn run db:deploy && yarn run seed && yarn run dev --host --port 5173" depends_on: - db networks: wings0: name: wings0 driver: bridge ipam: config: - subnet: "172.21.0.0/16" driver_opts: com.docker.network.bridge.name: wings0
错误信息
运行时出现如下错误:
Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /var/lib/pterodactyl/volumes/8f8caa88-7152-46a0-a448-de4168b809e6
已尝试操作
尝试使用\\\\wsl.localhost\\docker-desktop-data\\data\\docker\\volumes作为路径(该路径确实存在)替换Docker卷绑定路径,但问题未解决,且本地volumes文件夹完全不存在。
解决方案
1. 创建缺失的本地目录
在docker-compose.yml所在目录下,手动创建Wings所需的卷目录:
mkdir -p ./wings/var/lib/pterodactyl/volumes
如果使用WSL终端执行,确保路径对应到Windows下的项目目录(通常在/mnt/c/[你的项目路径]下)。
2. 调整Wings服务的卷绑定配置
修改wings服务的volumes字段,添加缺失的卷目录绑定:
volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "/var/lib/docker/containers/:/var/lib/docker/containers/" - "./wings/etc/pterodactyl/:/etc/pterodactyl/" - "./wings/var/lib/pterodactyl/:/var/lib/pterodactyl/" # 新增卷目录绑定,匹配错误提示的路径 - "./wings/var/lib/pterodactyl/volumes:/var/lib/pterodactyl/volumes" - "./wings/var/log/pterodactyl/:/var/log/pterodactyl/" - "./wings/tmp/pterodactyl/:/tmp/pterodactyl/" - "./wings/etc/ssl/certs:/etc/ssl/certs:ro"
3. 修复目录权限
在WSL终端中进入项目目录,调整Wings数据目录的权限,匹配容器内的UID/GID:
chown -R 988:988 ./wings
4. 避免使用Windows网络路径
Docker容器运行在WSL后端环境中,不要在docker-compose.yml中使用Windows网络共享路径(如\\\\wsl.localhost\\...),直接使用WSL兼容的相对或绝对路径即可。
内容的提问来源于stack exchange,提问作者CoasterFan5
相关产品推荐
相关产品推荐

