/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的赋值设置外壳的名称,该名称用于警告和错误消息。
相关推荐
w***765514 分钟前
用docker启动mysql步骤
mysql·docker·容器
p***q781 小时前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
d***95621 小时前
docker 安装 mysql
mysql·adb·docker
陌生人~4 小时前
docker安装redis
redis·docker
qq_2153978974 小时前
docker 安装 opengauss 高斯数据库
运维·docker·容器
f***14775 小时前
对Docker部署的MySQL中的数据进行备份恢复
mysql·docker·容器
u***42075 小时前
macOs安装docker且在docker上部署nginx+php
nginx·macos·docker
m***92386 小时前
docker中配置redis
redis·docker·容器
谷隐凡二6 小时前
Docker 的核心理念及技术的简单说明
运维·docker·容器
daqinzl6 小时前
Docker 安装 Ubuntu
ubuntu·docker