问题描述:Docker 容器路径解析错误导致密码重置失败
在尝试重置 Elasticsearch 的 elastic
用户密码时,执行以下命令时遇到了路径错误:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
返回错误信息:
OCI runtime exec failed: exec failed: unable to start container process:
exec: "D:/software/Git/usr/share/elasticsearch/bin/elasticsearch-reset-password":
stat D:/software/Git/usr/share/elasticsearch/bin/elasticsearch-reset-password:
no such file or directory: unknown
错误原因分析
Git Bash 的路径转换问题
Git Bash(MINGW64)会将 Linux 风格的路径(如 /usr/share/...
)自动转换为本地安装的 Git 路径(如 D:/software/Git/usr/share/...
),导致 Docker 容器内的路径被错误解析为宿主机的 Git 目录路径,从而触发 No such file or directory
错误。
解决方案:切换终端工具绕过路径问题
使用 PowerShell 或 CMD 替代 Git Bash 执行 Docker 命令,避免路径转换问题。
重置密码(PowerShell/CMD)**
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i