jar包打成docker镜像文件推送至服务器,服务器拉取并重启容器

  1. windows电脑需要去docker官网下载Docker Desktop
    这里需要注意两点:
    windows电脑需要开启hyper-v
    控制面板\所有控制面板项\程序和功能\启用或关闭Windows功能
    勾选上,然后等待系统重启应用

    在这里插入图片描述Docker Desktop安装时不要勾选wls2
  2. 安装好后使用 docker -v 命令验证是否安装成功
  3. 服务打成jar包然后使用docker打成镜像
    这里首先要自己制作一个Dockerfile文件,无须后缀名,和jar文件放在同一个文件夹下
    在这里插入图片描述
    Dockerfile文件内容
# 指定镜像地址
FROM openjdk:11
#把文件夹 fonts 和jar包拷贝到服务器后面指定的路径中去
ADD fonts/ /usr/share/fonts/
ADD lawlock-service-0.0.1-SNAPSHOT.jar /tmp/app.jar
#暴露端口号
EXPOSE 8080
#容器启动时执行的指令,有多个只会执行最后一个
CMD ["--spring.profiles.active=docker"]
#容器运行时执行的指令,有多个都会执行
ENTRYPOINT ["java", "-jar", "-Duser.timezone=GMT+08", "/tmp/app.jar"]
  1. 登录Docker Registry,这里用的是我的个人账号,你也可以创建你自己的
    docker login -u=濮罗米修斯 -p=pufei-dev registry.cn-hangzhou.aliyuncs.com
  2. 推送镜像到Docker Registry
    docker push registry.cn-hangzhou.aliyuncs.com/fpu/lawlock
  3. SSH至虚机
  4. 虚机拉取镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/fpu/lawlock
  5. 停止目前在运行的容器
    docker stop lawlock
  6. docker run --rm --name lawlock --network=“host” -d -p 8080:8080 -v /upload:/upload registry.cn-hangzhou.aliyuncs.com/fpu/lawlock
  7. 查看日志
    docker logs lawlock
### 将Java应用程序(JAR文件)构建为Docker镜像的最佳实践 #### 准备工作 为了功将Java应用程序打Docker镜像,需确保已安装配置好Docker环境。此外,拥有待打的`.jar`文件也是必不可少的前提条件。 #### 创建Dockerfile 编写一个合适的`Dockerfile`是整个过程中至关重要的一步。对于大多数场景而言,推荐采用多阶段构建的方式,这种方式不仅能够有效减少最终镜像大小,还能提高安全性与性能[^2]。 ```dockerfile # 使用官方OpenJDK作为基础镜像 FROM openjdk:17-jdk-alpine AS build # 设置工作目录 WORKDIR /app # 复制项目依赖至容器内 COPY . . # 编译项目(如果适用) RUN javac -d ./out src/*.java && \ jar cvf app.jar -C out/ . # 开始第二阶段:创建精简版运行时环境 FROM openjdk:17-jre-slim # 设定工作路径 WORKDIR /opt/app # 从build阶段复制编译好的jar到此层 COPY --from=build /app/app.jar /opt/app/ # 定义默认入口点 ENTRYPOINT ["java", "-jar", "/opt/app/app.jar"] ``` 上述示例展示了如何通过两步完从源码到可执行镜像的过程。第一步基于完整的开发工具链来处理项目的编译;而第二步则仅保留必要的运行库和支持文件,从而得到体积更小、加载速度更快的结果。 #### 构建与测试镜像 保存上面定义的内容到名为`Dockerfile`的文本文件之后,在同一目录下打开终端窗口输入如下指令: ```bash $ docker build -t my-java-app . $ docker run --rm my-java-app ``` 这会触发一次完整的构建流程,立即启动新生的应用实例用于初步验证其功能是否正常。 #### 推送至仓库 当确认本地环境中一切运作良好后,就可以考虑将该自定义镜像推送到公共或私有的注册中心以便后续分发给其他团队员或是生产服务器上部署使用了。 ```bash $ docker tag my-username/my-java-app:v1.0.0 $ docker push your-dockerhub-username/my-java-app:v1.0.0 ``` 以上操作完后即完了全部准备工作,现在可以从任何地方最新版本的镜像快速部署服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值