摘要
本教程包括以下内容:
- 准备java镜像的基础环境。
- 编写启动脚本和dockerfile。
- 使用docker构建java应用镜像。
- 启动容器运行java应用。
- 可能遇到的问题及解决方案。
最后会引导大家加我的微信,方便随时交流!
引言
docker作为一种轻量级容器化技术,可以极大地方便应用的部署和管理。通过docker,我们可以在任何支持docker的系统上轻松运行java应用,而不需要单独安装java环境。
正文
1. 准备工作
安装docker确保系统上已经安装了docker。如果尚未安装,请参考官方文档进行安装。
加载基础java镜像使用以下命令加载java镜像(这里假设你已经有了一个本地的java镜像文件):
docker load -i <镜像文件名>
例如:
docker load -i jdk-1.8.0_432.tar
加载成功后,可以通过以下命令查看镜像:
docker images
准备项目所需文件
需要准备的文件包括:- java应用的jar包(如
demo-0.0.1-snapshot.jar
)。 - 应用配置文件(如
application.properties
)。 - 启动脚本(
start_1.sh
)。 - dockerfile。
- java应用的jar包(如
2. 编写启动脚本
以下是一个完整的start_1.sh
脚本,用于启动java应用。每一部分都有详细注释,帮助你理解其功能:
#!/bin/sh # 设置环境变量以支持utf-8编码 export lang=en_us.utf-8 tz='cst-8' export tz # 定义jar文件目录、jar文件名和日志目录 jardir="/ywc/zb/" # jar包的存放路径 logdir="/ywc/zb/" # 日志文件的存放路径 jarfile="demo-0.0.1-snapshot.jar" # jar文件名称 outfile="demo.log" # 输出的日志文件名称 # 将脚本运行信息写入日志 echo "starting application..." > $logdir$outfile # 检查是否已有运行的java进程 threadid=$(ps -ef | grep $jarfile | grep -v grep | awk '{print $2}') if [ ! -z $threadid ]; then echo "$jarfile 已在进程 $threadid 中运行,尝试终止..." >> $logdir$outfile kill -9 $threadid echo "已终止存在的进程 $threadid。" >> $logdir$outfile fi # 启动java应用 nohup java -dfile.encoding=utf-8 -jar $jardir$jarfile \ -xmx1024m -xms1024m \ --spring.config.location=${jardir}application.yml \ --spring.config.location=${jardir}application.properties >> $logdir$outfile & echo "启动 $jarfile..." >> $logdir$outfile sleep 3s # 实时显示日志 tail -f $logdir$outfile
3. 编写dockerfile
下面是dockerfile
的内容:
# 基于指定版本的java镜像 from jdk:1.8.0_432 # java版本 # 添加java应用的jar包到容器中 add demo-0.0.1-snapshot.jar /ywc/zb/demo-0.0.1-snapshot.jar # 设置时区 env tz=asia/shanghai run ln -snf /usr/share/zoneinfo/$tz /etc/localtime && echo '$tz' > /etc/timezone # 添加配置文件 add application.properties /ywc/zb/application.properties # 添加启动脚本 add start_1.sh /ywc/zb/start_1.sh # 设置工作目录 workdir /ywc/zb # 暴露应用端口 expose 18080 # 赋予启动脚本可执行权限 run chmod +x /ywc/zb/start_1.sh # 指定启动容器时运行的命令 entrypoint ["./start_1.sh"]
4. 构建镜像并运行容器
文件名字:demo-api
版本: 1.0
构建docker镜像
使用以下命令构建镜像:
docker build -t demo-api:1.0 .
运行docker容器
18080 端口
运行容器并映射端口
docker run -it -p 18080:18080 demo-api:1.0
如果需要进入容器调试,可以运行:
docker run -it demo-api:1.0 /bin/bash
5. 验证应用运行
访问容器暴露的端口,确保应用正常运行。例如,如果应用监听在18080
端口,可以通过浏览器访问 http://<服务器ip>:18080
。
总结
通过以上步骤,你已经成功使用docker打包并运行了一个java应用镜像。这种方式可以极大地简化应用部署流程,并提高运行环境的稳定性。
到此这篇关于使用docker打包和运行java镜像的完整指南的文章就介绍到这了,更多相关docker打包和运行java镜像内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论