/bin/bash: cannot execute binary file

容器内部无法执行二进制文件

原因是docker镜像的

入口点不能指向/bin/bash。移除ENTRYPOINT ["/bin/bash"]就足以使其正常工作。

如果是下载的镜像,不能修改ENTRYPOIN,可以使用dockerfile覆盖掉原来的ENTRYPOINT

复制代码
FROM ubuntu
ENTRYPOINT [ "/bin/bash", "-l", "-c" ]

然后就可以运行二进制文件了。

请注意手册页中/bin/bash选项的用途:

  • -l:使bash表现得如同它已被作为登录shell调用一样
  • -c:如果存在-c选项,则从第一个非选项参数command_string中读取命令。如果command_string后面有参数,则将第一个参数分配给$0,并将其余所有参数分配给位置参数。对$0的赋值设置外壳的名称,该名称用于警告和错误消息。
相关推荐
一只小bit11 小时前
Docker 镜像制作:包含自定义镜像及常用命令
运维·docker·容器
江湖有缘12 小时前
容器化笔记:Memory应用在Docker环境下的部署与配置
笔记·docker·容器
苍煜12 小时前
Docker Compose 多容器编排实战(系列第五篇:开发环境一键部署)
运维·docker·容器
sbjdhjd13 小时前
企业级 Docker 镜像仓库建设与运维规范
linux·运维·docker·云原生·容器·eureka·开源
ChaITSimpleLove13 小时前
优化 WSL2 性能:为 Docker 和 K8s 定制高效内存配置指南
docker·容器·性能优化·kubernetes·wsl2·windows开发·pwsh
江湖有缘14 小时前
使用Docker部署Docker Compose文件管理工具Dockge
运维·docker·容器
苍煜14 小时前
Docker 私有仓库 Harbor 搭建与镜像推送(系列第六篇:企业私有镜像仓库实战)
运维·docker·容器
喵喵爱自由14 小时前
离线安装docker
运维·docker·容器
http阿拉丁神猫14 小时前
Docker知识点汇总(11~12)
运维·docker·容器
吉星9527ABC14 小时前
CentOS9stream上使用podman代替docker
docker·容器·podman