解决Mac Docker挂载路径被拒绝且添加路径后消失的问题
问题描述
执行以下Docker命令启动Elasticsearch 5.1.2容器:
sudo docker run -d -p 127.0.0.1:9200:9200 -v /PATH/TO/geoname_index/data/:/usr/share/elasticsearch/data elasticsearch:5.1.2
得到如下错误输出:
(base) myname@myname-MacBook-Pro es-geonames % sudo docker run -d -p 127.0.0.1:9200:9200 -v /PATH/TO/geoname_index/data/:/usr/share/elasticsearch/data elasticsearch:5.1.2 WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 4a706e62e91acfbae714cc6a33e270aedfaf84069c4bb5668187958d78cb8472 docker: Error response from daemon: Mounts denied: The path /PATH/TO/geoname_index/data is not shared from the host and is not known to Docker. You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing. See https://docs.docker.com/desktop/mac for more info.
尝试将geoname_index对应的本地路径添加到Docker的文件共享设置中,但点击Apply & Restart后,该路径会从设置窗口中消失。
解决方案
1. 修正路径权限
Docker无法识别权限异常的路径,先修改目标路径的所有者为当前用户:
sudo chown -R $USER:$USER /PATH/TO/geoname_index/data
替换/PATH/TO/为实际的本地路径前缀,比如/Users/yourname/。
2. 使用真实绝对路径
命令中的/PATH/TO/是占位符,必须替换为本地真实的绝对路径(如/Users/yourname/geoname_index/data),再将该真实路径添加到Docker文件共享列表中。
3. 重置Docker系统权限
- 关闭Docker Desktop
- 打开系统偏好设置 → 安全性与隐私 → 隐私 → 文件与文件夹
- 找到Docker Desktop,移除所有已授权的路径,再重新添加目标路径
- 重启Docker Desktop后再次尝试添加共享路径
4. 解决平台架构不匹配问题
你的Mac是arm64架构,而elasticsearch:5.1.2仅支持amd64,启动时需强制指定平台,避免后续兼容性问题:
sudo docker run -d --platform linux/amd64 -p 127.0.0.1:9200:9200 -v /真实路径/geoname_index/data/:/usr/share/elasticsearch/data elasticsearch:5.1.2
5. 升级Docker Desktop
旧版本Docker Desktop可能存在路径共享的bug,升级到最新稳定版后再尝试添加路径。
内容的提问来源于stack exchange,提问作者Rashid Abramov
相关产品推荐
相关产品推荐

