注:本文为学习时记录的笔记,内容尚浅,后续有时间可能会完善
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这个网络,方便容器通讯(可省略)