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

M1 Mac导出PostgreSQL Docker镜像到Windows运行报错如何解决

报错原因

你遇到的是典型的Docker镜像架构不兼容问题:

  • M1芯片属于ARM64(aarch64)架构,你在M1 Mac上提交导出的PostgreSQL镜像,所有二进制文件都是针对ARM64指令集编译的
  • 普通Windows设备绝大多数是x86_64(amd64)架构,无法直接运行ARM架构的二进制程序,错误栈里的asm_arm64.s字段也明确显示当前程序是ARM64架构的,运行时内核无法识别指令集,才会抛出创建系统线程失败的错误。
解决方案

按优先级从高到低推荐以下三种方案:

  1. 重新拉取镜像+逻辑迁移数据(最稳妥)
    • 在Windows设备上直接拉取amd64架构的官方PostgreSQL 9.2.23镜像:docker pull postgres:9.2.23
    • 回到M1 Mac的原PostgreSQL容器中,用pg_dump命令导出全量逻辑备份:pg_dump -U 用户名 -d 数据库名 > backup.sql
    • 将备份文件拷贝到Windows设备,挂载到新启动的PostgreSQL容器中,用psql或pg_restore导入备份即可,所有数据和原有结构都能完整保留。
  2. 开启QEMU转译运行(临时用)
    • Windows端的Docker Desktop默认集成了QEMU架构转译组件,启动容器时指定运行ARM64架构即可:docker run --platform linux/arm64 [其余原有启动参数] 你导入的镜像名
    • 该方案不需要调整镜像内容,但转译运行性能损耗很大,仅适合临时调试使用,不建议长期作为开发环境。
  3. 基于原有配置重建镜像
    • 如果原容器有大量自定义配置、安装了额外依赖,不想重新配置,可以将原容器中的配置文件、依赖列表、初始化脚本导出,基于amd64的postgres:9.2.23基础镜像编写Dockerfile重新构建适配Windows架构的镜像,再导入数据即可,兼顾稳定性和自定义需求。

额外提示:PostgreSQL 9.2版本早已停止官方维护,存在大量已知安全漏洞,开发环境也建议尽量升级到仍在支持的稳定版本。

内容的提问来源于stack exchange,提问作者チャーリー

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:45:02