standard_init_linux.go:207: exec user process caused “exec format error“

发生错误的情景

docker容器启动失败,使用docker logs查看到的错误信息。

客户因为国产化需求,服务器从centOS换到了统信UOS,原本在centOS能正常运行的image,在统信UOS会发生如题错误。

错误原因

楼主查阅了大量的资料 确定了是CPU架构不同而造成的原因,之前centOS的CPU架构是x86,而统信UOS是arm64 ,如果各位遇到错误的情景和我一样,可以分别在两台机器上直接使用"uname -m"指令进行查看,如果错误的原因和我一样,可以继续往下阅读。但如果查看出来两台机器的CPU架构一样,以下解决方式可能无法解决你的问题。

解决方式

1.在需要运行的机器上重新制作image

这种方式比较简单,使用docker build在对应的cpu架构平台的机器上直接产生新的image即可

2.docker制作跨平台的image

因楼主的客户是国有企业特别注重安全,所以服务器也都是层层加密且无外网,导致无法在arm64的机器上面产生新的image 并且身边也找不到该CPU架构的机器,最终使用了buildx来制作

楼主的开发环境如下:

macOS : 10.15.7
docker : 20.10.7

  1. 使用如下命令 设置环境变量 DOCKER_CLI_EXPERIMENTAL 来启用buildx插件
$ export DOCKER_CLI_EXPERIMENTAL=enabled
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值