容器内部无法执行二进制文件
原因是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
的赋值设置外壳的名称,该名称用于警告和错误消息。