一、报错信息:docker “exec format error”
原因:在最终指定的run.sh的shell脚本中,没有标注文件的类型,如下:
#!/bin/sh
二、容器已经运行,但是容器内的服务没有启动
排查方向一:
在编译生成镜像的时候,run.sh中的使用的是sh /.../run.sh,这样可能导致服务启动不了;需要先cd到run.sh目录,再使用sh run.sh命令
三、Dockerfile编写注意:
在使用Docker时,可以使用docker run命令创建并启动一个容器,而在容器中,对长时间运行容器的要求是:其主程序需要一直在前台执行。如果我们创建Docker镜像的启动命令是后台执行程序,例如:
$ nohup ./start.sh &
则当容器启动完成后,会立即销毁。
所以,一般在Dockerfile后面加上 tail -f /dev/null