目录
1. 前提准备
(1) 准备一个jar打包文件,已为大家准备(我这里的包名为 app.jar)
(2) 已经下载安装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安装教程都已经放在了上面。
希望这篇文章对你有用😀。