资料参考
参考自黑马教程:10.Docker基础-自定义镜像_哔哩哔哩_bilibili
初步准备
打包好java项目jar包,和Dockerfile文件一起放到指定目录下,后续操作都是在该目录下操作,
我这边是:/usr/local/src/train-ticket/
编写Dockerfile文件
- 注意包名要换成自己的,
- 这边openjdk17镜像可去dockerhub查找,而这边是自己构建的,
- 可参考:docker构建jdk17镜像-CSDN博客
#指定jdk基础镜像
FROM openjdk:17
#配置时区,校正后续容器日志时间
ENV TZ=Asia/Shanghai
#拷贝java项目包
COPY ./member-0.0.1-SNAPSHOT.jar /member.jar
#镜像需要暴露的端口
EXPOSE 8010 8719
#入口,java项目的启动命令
ENTRYPOINT ["java","-jar","/member.jar"]
执行Dockerfile命令
注意这边镜像名和标签替换成你自己的,后面的点不要漏了
docker build -t member:1.0 .
很快就能构建成功了:
容器日志的时间校正
由于jdk和java项目镜像我是分别构建的,所以其中一个Dockerfile文件有设置就可以,两个都设置也可以。校正后如图所示:
容器日志的中文乱码
一开始我是直接在以上Dockerfile文件中配置的:ENV LANG=en_US.UTF-8,
但试了不行(还是有部分乱码),
最后我这边是通过在 docker run 的时候加上 -e LANG=en_US.UTF-8,完整如下:
docker run -itd \
--name member \
--privileged=true \
-p 8010:8010 \
-e LANG=en_US.UTF-8 \
member:1.0
对比图: