背景
最近在k8s的arm环境部署服务,遇到格式错误问题,报错如下:
libeontainer: container start initialization failed: standard init linux. go:24: exec user process caused "exec format error
standard init_linux. go:224: exec user process caused "exec format error
解决方案
格式错误,基本就是镜像问题。镜像问题有几方面原因
1. k8s宿主机cpu为arm架构,所以镜像必须采用支持arm架构镜像
宿主机cpu架构查看
uname -m
判断镜像是否arm架构,通过如下命令查看
docker inspect <image_id> | grep -i arch
2. 如果镜像查看已经是arm架构,但仍然有以上报错,接着排查dockerfile文件
- 判断基础镜像是否是arm
- dockerfile文件格式是否编写错误
- 还需要注意互联网down下来的镜像是否重新打tag