服务器 > 服务器 > 云虚拟主机

使用Docker打包和运行Java镜像的完整指南

34人参与 2025-02-14 云虚拟主机

摘要

本教程包括以下内容:

最后会引导大家加我的微信,方便随时交流!

引言

docker作为一种轻量级容器化技术,可以极大地方便应用的部署和管理。通过docker,我们可以在任何支持docker的系统上轻松运行java应用,而不需要单独安装java环境。

正文

1. 准备工作

docker load -i <镜像文件名>

例如:

docker load -i jdk-1.8.0_432.tar

加载成功后,可以通过以下命令查看镜像:

docker images

  1. 准备项目所需文件
    需要准备的文件包括:

    • java应用的jar包(如demo-0.0.1-snapshot.jar)。
    • 应用配置文件(如application.properties)。
    • 启动脚本(start_1.sh)。
    • dockerfile。

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

  1. 构建docker镜像

  2. 使用以下命令构建镜像:

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镜像内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

docker部署CASSANDRA全过程

02-14

Dokcer部署双主Mysql的详细步骤

02-14

Docker PostgreSQL容器化部署方式

02-14

dockerfile中su命令切换用户激活环境,报错su: invalid option -- ‘n‘

02-14

docker-compose启动minio方式

02-14

Docker打包自定义镜像的实现

02-14

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论