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

如何修复Docker创建挂载源路径时的输入输出错误?

解决Docker在macOS上创建/srv挂载目录时的IO错误问题

问题原因

macOS默认不存在/srv系统目录,Docker Desktop通过/host_mnt映射宿主文件系统时,无权限自动创建该目录或访问对应路径,最终触发挂载IO错误。

解决方案

1. 手动创建宿主目录并配置权限

打开终端执行以下命令,创建所需目录并赋予Docker足够的读写权限:

sudo mkdir -p /srv/pterodactyl/{database,var,nginx,certs,logs}
sudo chmod -R 777 /srv/pterodactyl

注:777权限为快速适配的宽松配置,生产环境可根据实际需求调整为更严格的权限规则。

2. 配置Docker Desktop文件共享

  • 打开Docker Desktop,点击顶部菜单栏Docker图标 → Preferences
  • 切换到Resources标签页,选择File Sharing选项
  • 点击列表下方的+按钮,找到并添加/srv目录
  • 点击Apply & Restart,等待Docker完成重启

3. (可选)改用用户目录替代系统目录

若不想使用/srv系统目录,可将Docker Compose中的挂载路径改为用户主目录下的路径,规避系统目录权限限制。修改后的Compose文件示例:

services:
  database:
    # 其他配置保持不变
    volumes:
      - "~/pterodactyl/database:/var/lib/mysql"
  panel:
    # 其他配置保持不变
    volumes:
      - "~/pterodactyl/var/:/app/var/"
      - "~/pterodactyl/nginx/:/etc/nginx/http.d/"
      - "~/pterodactyl/certs/:/etc/letsencrypt/"
      - "~/pterodactyl/logs/:/app/storage/logs"

修改后需先创建~/pterodactyl目录,并确保该目录已添加到Docker Desktop的File Sharing列表中。

4. 重新部署容器

执行以下命令重启服务:

docker-compose down
docker-compose up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:14:59