docker报错standard init linux.go:228 exec user process caused: exec format error

这篇具有很好参考价值的文章主要介绍了docker报错standard init linux.go:228 exec user process caused: exec format error。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、报错

使用Dockerfile自己做的服务镜像,docker run时启动失败,报错如下:

standard init linux.go:228 exec user process caused: exec format error

2、原因一

当前服务器的CPU架构和构建镜像时的CPU架构不兼容。比如做镜像是在arm机器下构建的,而docker run是在amd架构下执行的。排查:

# 镜像信息
docker inspect 镜像ID |grep -i Arch

standard_init_linux.go:228: exec user process caused: exec format error,Error整理,docker,linux

查看当前服务器的CPU架构信息:

# Linux信息
uname -a
# 或
lscpu

此时,可通过docker buildx插件模拟多CPU架构,构建出你需要的镜像,从而解决这个问题。

2、原因二

要是前面的这个问题,那倒是明晰,坑就在你明明用docker buildx构建的,查看两个架构信息也没毛病,但还是报这个错。

standard_init_linux.go:228: exec user process caused: exec format error,Error整理,docker,linux

此时,考虑你Dockfile里的基础镜像,它的架构也要对应上。不能做amd下的镜像,但基础镜像却是arm下的。比如我之前使用JDK的镜像,Dockerfile共用一个,开头都是:

FROM openjdk:11.0.4

这个坑得处理掉,可以通过–platform参数来完成指定架构镜像的拉取:

docker pull --platform linux/arm64 openjdk:11.0.4
docker pull --platform linux/amd64 openjdk:11.0.4

后面我是通过CICD平台的,对应的打包脚本也就变成了:

standard_init_linux.go:228: exec user process caused: exec format error,Error整理,docker,linux

问题解决!文章来源地址https://www.toymoban.com/news/detail-780652.html

到了这里,关于docker报错standard init linux.go:228 exec user process caused: exec format error的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Bug:mac上运行go run main.go 报错,fork/exec /var/fold/T/go-build269/b001/ex

    今天通过goland执行go run main.go运行我本地编写好的go代码时,发现报错fork/exec / xxx 方法一: 因为当前go的build环境不对,比如:我是mac系统,但是之前go中的GOOS配置的是linux,因此导致报错 方法二: 可能是因为重装或者更新go版本后,并没有在env里更新 /var/folders/ty/q11880gn5797

    2024年02月10日
    浏览(60)
  • 10.docker exec -it /bin/bash报错解决、sh与bash区别

    进入容器时,报如下错误 将bin/bash换成bin/sh 制作镜像时使用了精简版,只装了sh命令,未安装bash。 Shell是一种应用程序,该应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,是用户使用 Linux 的桥梁。Shell 既是一种命令

    2024年04月08日
    浏览(61)
  • docker无法启动报错start docker Failed at step EXEC spawning /usr/bin/containerd

    报错内容: docker无法启动报错start docker Failed at step EXEC spawning /usr/bin/containerd 找不到/usr/bin/dockerd文件 解决思路: 1、首先看一下二进制安装docker的路径/usr/local/bin 对于旧的docker启动文件进行删除 rm -rf /etc/systemd/system/devicemapper.conf 然后新添加docker.service  cat /etc/systemd/system/do

    2024年01月19日
    浏览(44)
  • OCI runtime exec failed: exec failed: unable to start container process:

    测试使用docker容器名字ping通容器与容器之间,出现 OCI runtime exec failed: exec failed: unable to start container process: exec: “ping”: executable file not found in $PATH: unknown 报错 重新测试 成功!

    2024年02月13日
    浏览(54)
  • 使用docker-compose启动docker镜像报错exec ./docker-entrypoint.sh: no such file or directory

    报错原因:exec ./docker-entrypoint.sh: no such file or directory 我们可以在linux下通过cat -v命令查看.sh文件   例: cat -v Dockerfile         WORKDIR /tools/*******/^M         RUN chmod a+x /tools/*********/docker-entrypoint.sh^M         ENTRYPOINT [\\\"./docker-********.sh\\\"]^M 这种后缀有^M的即为编码错误造成的

    2024年02月15日
    浏览(42)
  • docker容器日志报错:/docker-entrypoint.sh: exec: line 10: /bin/bash: not found(去掉/bin/bash)

    这个错误提示表明eclipse-mosquitto镜像生成的容器内部找不到 /bin/bash 这个命令,可能是由于在容器镜像中没有安装 Bash 或在执行脚本时路径不正确导致的。如果你使用的是官方的 eclipse-mosquitto 镜像,那么这个问题一般不会出现。 如果你在 Dockerfile 中指定了自己的 ENTRYPOINT 或

    2024年02月09日
    浏览(43)
  • Linux中执行java命令报错:cannot execute binary file: Exec format error

    对于这个问题,如果你确认文件没有损坏、文件权限正确、服务器位数和JDK位数一致,那么本文99.999999%可以解决你的问题。 Java程序在自己的开发环境、测试环境,一切正常,启动命令如下: 某天,终于要在客户的生产环境进行部署了。一切都很愉快,现在万事俱备,只差启

    2024年02月04日
    浏览(48)
  • exec failed: unable to start container process: exec: “ip“: executable file not found in $PATH

    问题报错: 报错原因:因为该容器的镜像时精简版,内部缺少iproute2导致无法使用ip命令 解决方式: 进入容器 docker exec -it 容器名 /bin/bash 进入后: 更新apt apt-get update 安装iproute2 agt install -y iproute2 安装完以后退出exit docker exec -it 容器名 ip addr  修改后尝试结果: 同理  安装

    2024年02月13日
    浏览(52)
  • 【Linux】在Linux上使用Conda报错:CondaError: Run ‘conda init‘ before ‘conda activate‘

    最近使用conda遇到一个报错,特地写下来分享一下。 事情是这样的。 我使用conda新建了一个环境: 然后,在使用下面的命令进入这个环境时,报错。 使用的命令: 报的错误: 在网上搜索了很多方法,都没有用,之后重新用以下命令更新了环境,报错解决。 特此记录。

    2024年01月22日
    浏览(46)
  • [http-nio-8080-exec-4] com.alibaba.druid.pool.DruidDataSource.error {dataSource-1} init error java.s

    JDBC使用Druid连接池连接数据库的时候,遇到报错:[http-nio-8080-exec-4] com.alibaba.druid.pool.DruidDataSource.error {dataSource-1} init error java.s 一、刚开始发现我自己的mysql版本是5.7,但在pom.xml里导的mysql包是8.0.22,过大,所以重新导包将其改为5.1.38 二、由于mysql5.0和8.0配置不同,相关驱动名

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包