1、本次镜像的基础镜像是:https://www.cnblogs.com/JoeyWong/p/9173265.html
2、将打包好的项目文件放在与Dockerfile同级的目录下
3、Dockerfile 如下:
# Base os image FROM centos:jdk8 MAINTAINER Joey <your email> LABEL Description="This image is javaweb images." Version="1.0" #java web RUN mkdir /home/data #将项目文件从本地传到镜像中 ADD javaweb-package.zip /home/data #解压项目 解压后删除多余文件 RUN unzip /home/data/javaweb-package.zip -d /home/data/ && rm -rf /home/data/javaweb-package.zip #授权 RUN chmod -R +x /home/data/javaweb-1.0 #开放8080端口 EXPOSE 8080 #在启动后执行web项目的启动脚本 ENTRYPOINT ["sh","/home/data/javaweb-1.0/start.sh"]
4、注意点:
1、项目的解压路径,一开始的时候我没有将项目解压到指定路径,然后生成的镜像中项目都被解压到了 / 目录下,以至于项目始终运行错误
2、在最后启动后运行项目启动脚本的时候,我的脚本中使用了nohup,后台运行,所以docker run之后 容器就退出运行!!于是我在我的start.sh的脚本末尾添加了tail -f $PRG_DIR/log.log 动态查看日志的命令,至此 搞定!
5、生成镜像,注意 . 很重要
docker build -t javaweb:1.0 .
6、导出镜像,其中
docker save <镜像ID>> /root/javaweb-docker.tar