Docker构建镜像部署Java项目

116 阅读1分钟

注:本文为学习时记录的笔记,内容尚浅,后续有时间可能会完善

1.Docker拉取JDK基础镜像,这里我用的是Java11的版本

docker pull openjdk:11

2.创建一个单独的文件夹,创建名为Dockerfile的文件并将jar包放入

Dockerfile内容如下:

FROM openjdk:11 
COPY *.jar /app.jar 
CMD ["--server.port=8080"]
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 8080  
ENTRYPOINT ["java","-Duser.timezone=Asia/Shanghai","-jar","/app.jar"] 

FROM openjdk:11 指定基础镜像,使用openjdk:11镜像,其中openjdk:11包含Java运行时环境。

COPY *.jar /app.jar 将本地目录下的所有jar文件复制到容器内的/app.jar路径下。

CMD ["--server.port=8080"] 指定容器启动后默认执行的命令参数。

ENV TZ=PRC 这一行使用ENV指令设置一个环境变量TZ,其值为PRC,表示中国时区。TZ是TimeZone的缩写,用于指定时区信息。

EXPOSE 8080 暴露8080端口,使容器内部的8080端口可以被外部访问。

ENTRYPOINT ["java","-jar","/app.jar"] 指定容器启动命令,使用java来执行/app.jar路径下的jar包。

3.打包成docker镜像

打包指令:

docker build -t news_school_web1 .  

•docker bulid 是打包命令

•-t − 给镜像加一个Tag

•后面跟的 news_school_web1 就是为这个镜像取的名字

•.小数点表示当前目录,即Dockerfile所在目录

4.启动镜像

docker run -d -p 8080:8080 --name news_school_web1 news_school_web1 --network myWebNetwork

•-d 是后台运行

•-p 8080:8080是端口映射

•--name 取容器名字

•最后跟的 news_school_web1 是使用的镜像名称。

•--network myWebNetwork为加入myWebNetwork这个网络,方便容器通讯(可省略)