使用docker打包部署jar包服务
环境 JDK11+springboot,写一个简单的 Controller,返回 hello World
使用 maven package 打包工程,生成对应的 jar 包。
在 target 中找到 jar 包
把 Jar 包拿过来,放到服务器的目录下面去。
先把 openjdk 11 给拉去下来
docker pull openjdk:11
编写的 Dockerfile 文件
FROM openjdk:11
WORKDIR /user
COPY app-0.0.1-SNAPSHOT.jar app.jar #将原来jar拷贝成新的jar包
EXPOSE 8080 #暴露端口
ENTRYPOINT ["java", "-jar", "app.jar"]
docker build -t wzkjhello . //运行这个命令 构建出wzkjhello的镜像
运行容器
docker run -d --restart=always --name wzkjhello -p 8080:8080 wzkjhello
访问成功
这个中间的几个概念
a. Dockerfile
- 定义:Dockerfile 是一个文本文件,包含了一系列指令,用于自动化构建 Docker 镜像。
- 作用:通过编写 Dockerfile,可以定义应用程序的运行环境、所需的依赖、配置文件等,确保环境的一致性和可重复性。
b. 镜像(Image)
- 定义:镜像是一个轻量级、可执行的独立软件包,包含运行某个应用程序所需的所有代码、运行时、库、环境变量和配置文件。
- 特性:
- 只读:镜像本身是只读的,多层文件系统(Layered File System)。
- 可复用:同一个镜像可以被多个容器共享,节省存储空间。
c. 容器(Container)
- 定义:容器是镜像的运行实例,是一个隔离的、可运行的环境,包含应用程序及其所有依赖。
- 特性:
- 轻量级:共享宿主机的操作系统内核,启动速度快。
- 隔离性:每个容器彼此独立,确保应用的安全和稳定性。