Windows下Docker Run执行cat导出Postgres配置文件失败,求解决
解决Windows下Docker导出Postgres配置文件失败的问题
报错原因
你遇到的问题是Windows下的Git Bash终端会自动将容器内的Unix路径转换为Windows本地路径,导致cat命令错误地去查找Git安装目录下的文件,而非Postgres容器内的目标路径。
解决方案
方案1:使用Windows原生终端执行
直接在PowerShell或CMD(命令提示符)中运行原命令,这两个终端不会对Unix路径做自动转换:
docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
方案2:在Git Bash中禁用路径转换
如果必须使用Git Bash,可通过两种方式避免路径解析错误:
- 给容器内路径添加额外斜杠:
docker run -i --rm postgres cat //usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
- 临时禁用Git Bash的路径转换功能:
MSYS_NO_PATHCONV=1 docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
方案3:使用docker cp命令(更可靠)
docker cp是Docker官方提供的容器与主机间文件复制工具,完全避免路径解析问题,步骤如下:
- 启动临时Postgres容器(后台运行):
docker run -d --name temp-postgres postgres
- 复制容器内配置文件到主机:
docker cp temp-postgres:/usr/share/postgresql/postgresql.conf.sample my-postgres.conf
- 删除临时容器:
docker rm -f temp-postgres
内容的提问来源于stack exchange,提问作者steve stack
相关产品推荐
相关产品推荐

