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

运行docker启动postgres容器时出现Mounts denied挂载错误该如何解决?

报错说明

启动PostgreSQL容器执行命令:

docker run -d \
--name some-postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /custom/mount:/var/lib/postgresql/data \
postgres

收到报错:

docker: Error response from daemon: Mounts denied:
The path /custom/mount is not shared from the host and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.

该报错的原因是Docker Desktop默认仅允许挂载白名单内的本地宿主路径,你指定的/custom/mount不在当前共享白名单中,因此挂载操作被拒绝。

解决方法

方法1:添加路径到Docker共享白名单(适合需要把数据存在本地指定路径的场景)

  • 打开Docker Desktop客户端,点击顶部菜单栏的Docker选项,选择Preferences...(偏好设置)
  • 在左侧导航栏选择Resources(资源)分类,点击下属的File Sharing(文件共享)选项
  • 点击页面上的+按钮,在弹出的选择框中选中/custom/mount路径添加到共享列表;如果需要挂载任意路径,也可以直接添加根目录/到共享列表(仅建议对本地安全性要求不高的场景使用)
  • 点击页面右下角的Apply & Restart(应用并重启)按钮,等待Docker完成重启操作
  • 重新执行原启动命令即可正常启动容器

方法2:使用Docker命名卷存储数据(无需配置文件共享,适合不需要手动访问本地数据文件的场景)

将原启动命令中的本地挂载参数替换为命名卷参数即可,修改后命令如下:

docker run -d \
--name some-postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v postgres_data:/var/lib/postgresql/data \
postgres

Docker会自动创建名为postgres_data的命名卷来持久化存储PostgreSQL数据,无需配置本地路径共享权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:24:04