目标
- 将一个java web项目打包成镜像,运行在docker中
所需环境:
- 首先你得有个可运行的java web项目,将其打成jar包或者war包(我使用的是springboot,自带tomcat,否则你还需要一个linux版本的tomcat)
- 有linux环境(vmware虚拟机、Virtual Box),
- 这个环境必须安装过docker,
- 如何安装docker
- 安装后如何避免每次执行docker都需要sudo,
- 请自行百度。
- 有一个jdk的linux版本,比如:jdk-8u231-linux-x64.tar.gz
- 一个docker file(如何制作dockerfile见下文)
大致步骤:
- 在linux环境下新建一个文件夹(我使用的是ubuntu,mkdir ljtest),把上述材料放进去(jdk的tar包、项目的jar包、docker file)
- 制作:docker build -t myappname . ( . 不要忘了)
- 查看:docker images (看一下是否存在myappname这个镜像)
- 运行:docker run -it myappname
如何制作dockerfile:
#基于centos镜像
FROM centos
#工作目录
WORKDIR /home/lj
#维护人的信息
MAINTAINER ljfirst <ljfirst@mail.ustc.edu.cn>
#install jdk and jar包(需要确保你的centos镜像中有/usr/java/这个路径,不行就mkdir)
ADD jdk-8u231-linux-x64.tar.gz /usr/java/
ADD monitoringalarm-0.0.1-SNAPSHOT.jar /home/lj/
#jdk enviroment
ENV JAVA_HOME=/usr/java/jdk1.8.0_231
ENV JRE_HOME=/usr/java/jdk1.8.0_231/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
ENV PATH=$JAVA_HOME/bin:$PATH
#设置端口
EXPOSE 8080
#执行命令
CMD ["java","-jar","/home/lj/monitoringalarm-0.0.1-SNAPSHOT.jar"]
踩坑记录:
- ADD monitoringalarm-0.0.1-SNAPSHOT.jar /home/lj/ 这一步我使用的是COPY,然后就报各种路径错误,然后该回来使用ADD,这样就可以拷贝当前目录的文件。