【今日bug】在本地创建容器,进入后快速退出

  1. 容器已启动但立即退出: 根据 STATUS 列显示的 Exited (1) 5 seconds ago,容器确实已被启动,但几乎立刻就退出了。退出状态码为 1,通常表示在容器内部执行的命令(这里是 /bin/bash)遇到非零退出状态,即出现了某种错误或异常导致命令执行失败。

  2. 看日志查看错误

   sudo docker logs orin_docker
wk@OMEN-45L:~$ sudo docker logs orin_docker

exec /bin/bash: exec format error

exec /bin/bash: exec format error

exec /bin/bash: exec format error

docker logs orin_docker 输出显示连续三次相同的错误信息:“exec /bin/bash: exec format error”。这个错误通常表示容器内尝试执行的二进制文件(在这里是 /bin/bash)与当前系统架构不兼容。

问题分析:

  1. 架构不匹配: 错误信息中的“exec format error”指出,Docker容器在尝试执行 /bin/bash 时,发现该二进制文件的格式与当前系统的处理器架构不匹配。这意味着容器镜像(5182263ec9f1)可能构建于一个与宿主机不同的CPU架构上。

  2. 宿主机与容器架构差异: 您的宿主机(OMEN-45L)很可能是基于x86_64(AMD64)架构的。然而,容器内 /bin/bash 的格式错误提示表明,该镜像可能为ARM或其他非x86架构构建。因此,当容器尝试在x86_64宿主机上运行非x86_64的 /bin/bash 时,就会出现“exec format error”。

结论:是的,我本地机器是x86的,镜像是arm的。没办法把arm的镜像生成的容器在x86上用。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
容器在运行过程中突然退出,可以通过以下几个步骤来进行排查和解决: 1. 查看容器退出原因:运行 `docker ps -a` 命令可以列出所有容器的状态,找到刚刚退出容器。然后使用 `docker logs <container_id>` 命令查看容器的日志,寻找可能的错误信息或异常。 2. 查看容器的状态码:通过 `docker ps -a` 命令可以看到容器的状态码。状态码为非零时表示容器非正常退出。可以运行 `docker inspect <container_id>` 命令来查看容器的详细信息,包括退出码、启动命令等。 3. 检查资源限制:如果容器在运行过程中由于资源不足而退出,可以检查宿主机的资源使用情况,包括内存、CPU等。可以使用 `docker stats` 命令来实时查看容器的资源使用情况。 4. 检查容器配置:检查容器的配置文件,包括 Dockerfile、docker-compose.yml 等,确认是否存在错误或不合理的配置。特别是检查容器的启动命令和环境变量是否正确设置。 5. 检查宿主机环境:确认宿主机的操作系统和依赖环境是否满足容器的要求。有时候容器需要运行在特定的操作系统版本或需要安装特定的软件依赖。 6. 更新 Docker 版本:如果使用的是旧版本的 Docker,可能存在一些已知的问题和 bug,建议更新到最新的稳定版本。 通过以上步骤的排查,通常可以找到容器退出的原因,并且采取相应的措施进行修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DFminer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值