目录
第一步:打jar包
第二步:创建一个目录his_docker(名字随意起)
为什么要新建目录?
第三步:把打好的jar包上传到his_docker目录
第四步:在his_docker目录创建dockerfile文件
第五步:构建jar包对应的镜像
第六步:查看镜像是否构建成功
第七步:运行容器
第八步:查看容器是否成功运行
第九步:查看docker容器中的java服务是否可用?
第一步:打jar包

第二步:创建一个目录his_docker(名字随意起)

为什么要新建目录?
因为后续要将jar包、Dockerfile文件等,上传到该目录中,方便统一管理。
第三步:把打好的jar包上传到his_docker目录

第四步:在his_docker目录创建dockerfile文件
切换到his_docker目录,执行如下命令:
vim Dockerfile
然后将如下的内容,直接复制到Dockerfile文件中。
# 使用官方OpenJDK 17作为基础镜像(包含glibc 2.31+,远高于所需的2.25)
FROM openjdk:17-jdk-slim
# 维护者信息(可选)
LABEL maintainer="casually"
# 设置工作目录
WORKDIR /app
# 创建一个非root用户运行应用(安全最佳实践)
RUN groupadd -r appuser && useradd -r -g appuser appuser
# 将应用的JAR包复制到镜像中
# 注意:请将your-app-name.jar替换为您的实际JAR文件名
COPY *.jar app.jar
# 修改文件所有者
RUN chown -R appuser:appuser /app
# 切换到非root用户
USER appuser
# 暴露应用端口(修改为8848)
EXPOSE 8848
# 容器启动时执行的命令
# 使用exec格式确保Java进程能正确接收信号
ENTRYPOINT ["java", "-jar", "app.jar"]
第五步:构建jar包对应的镜像
# 在 his_docker 目录下执行
docker build -t his-image:v1 .

第六步:查看镜像是否构建成功
docker images

如上图所示,镜像成功构建。
第七步:运行容器
docker run -d -p 8848:8848 –name his-container –restart always his-image:v1
解读:
-
-d:后台运行
-
-p 8848:8848:将主机的8848端口映射到容器的8848端口
-
–name his-container:容器名称(您可以自定义,比如 his-app、his-server 等)
-
his-image:v1 :您的镜像名称
-
–restart always his-image:带自动重启策略(推荐,确保容器一直运行
第八步:查看容器是否成功运行
# 查看容器是否运行
docker ps | grep his-container

第九步:查看docker容器中的java服务是否可用?
curl http://localhost:8848/mytest/test001
注意:这个/mytest/test001接口,是我们自己写的,专门用来测试服务是否可用,如下图。

测试效果如下

注意:如果有前端,也可以用前端发送请求,查看后端服务是否可用



