Dockerfile 构建java镜像并运行部署java项目
目录
1. 前提准备
2. 什么是Dockerfile
3. 步骤
3.1. 创建目录
3.2. 编写dockerfile文件
3.3. 构建镜像
3.4. 运行容器
3.5. 验证
4. 总结
1. 前提准备
(1) 准备一个jar打包文件,已为大家准备(我这里的包名为 app.jar)
资源链接,点我下载
(2) 已经下载安装docker如果未安装,点击下面的链接查看如何安装。
CentOS7 docker安装教程
(3) 工具xshell(连接虚拟机服务器的终端工具)、xftp(本机和服务器文件传输)
2. 什么是Dockerfile
Dockerfile 是一个文本文件,它包含了用于构建 Docker 镜像的一系列指令。通过dockerfile,你可以定义应用程序的运行环境,包括操作系统、依赖库、配置文件以及启动命令等。这使得 Docker 镜像可以被一致地构建和部署,确保了开发、测试和生产环境之间的兼容性。
通俗点来讲,Dockerfile 就像是一份“食谱”,它告诉 Docker 如何一步一步地准备一个特定的运行环境。
想象一下,你想要制作一款特别的蛋糕。你需要知道:
用什么材料(比如面粉、鸡蛋、糖)。
怎么混合这些材料(比如先打蛋,再加糖,最后混入面粉)。
最后怎么烘焙(比如烤箱温度和时间)。
同理,
Dockerfile告诉 Docker:
基础环境:从哪里开始(就像选择是做巧克力蛋糕还是抹茶蛋糕的基础配料)。
添加文件:把哪些文件放进这个环境中(就像加入你自己的配料,比如水果或坚果)。
安装工具:需要安装什么软件(比如如果要做装饰,可能需要买一些额外的工具)。
配置设置:如何设置这个环境(比如设定烤箱温度)。
启动命令:最后运行什么命令来启动你的应用程序(就像最后把蛋糕放进烤箱)。
3. 步骤
3.1. 创建目录
创建一个appjava目录,将jar包放入文件夹中,并且创建一个dockerfile
3.2. 编写dockerfile文件
FROM openjdk:17
LABEL author=cheng
COPY app.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
说明:
(1) 指定基础镜像为 openjdk:17 这是官方的 OpenJDK 17 镜像,包含了 JDK 和 JRE,适用于运行 Java 应用程序。
(2) LABEL标签用于描述镜像的元数据,这里指定作者信息。
(3) 将宿主机上的 app.jar 文件复制到镜像中的 /app.jar 路径。
(4) 声明容器运行时监听的端口为 8080。
(5) 设置容器启动时执行的命令为 java -jar /app.jar
3.3. 构建镜像
docker build -f dockerfile -t myjavaapp .
成功后查看镜像
注意:
(1) -f 参数指定了要使用的 dockerfile 文件的路径和名称。
(2) -t 参数为构建的镜像指定一个名称。
(3) 目录最后的一个点不能少,这个点(.) 代表./(当前目录下)
3.4. 运行容器
docker run -d -p 8080:8080 myjavaapp
容器启动
3.5. 验证
游览器输入 服务器ip+端口8080,如下图所示就代表启动成功。
4. 总结
看到这里,如果你对dockerfile的概念还有点模糊,可以这样为你解释,假设你有一个 Java 应用程序,你想把它打包成一个可以在任何地方运行的“盒子”。你可以写一个dockerfile 来描述怎么做。
文章的过程大概过程就是在包含 dockerfile 文件和 app.jar 包的目录中执行以下命令来构建镜像。jar 包的下载链接和docker安装教程都已经放在了上面。
希望这篇文章对你有用😀。