Docker部署可执行jar包(1)

本文介绍了三种使用Docker部署可执行jar包的方法。方法一:直接构建运行jar的镜像,通过`docker run`命令启动容器并设置相关参数。方法二:基于JDK镜像运行,将jar包挂载到容器内执行。方法三:利用Maven插件自动化构建镜像并部署。此外,还提到了开启Docker远程访问和更新jar包的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker run -d --restart=always --name demo -p 8080:8080 my-demo

其中参数的含义:

  • -d :后台运行容器,并返回容器ID

  • –restart=always :容器在停止或服务器开机之后会自动重新启动

  • -p :指定端口映射

  • 最后的 my-demo指定镜像

  1. 启动容器后可以使用 docker ps命令查看启动的容器

  2. docker logs --tail 300 -f 容器id ,可以查看服务的日志。

  3. 如果想更新jar包,只需要使用docker cp demo-0.0.1-SNAPSHOT.jar 容器ID:/demo.jar,就可以将demo-0.0.1-SNAPSHOT.jar拷贝进容器并重命名,然后 docker restart 容器ID 重启容器。

方法二、基于jdk镜像运行容器

=================================================================================

方法一是直接构建了一个运行jar包的镜像,这里还有另外一种方式,基于jdk镜像运行容器。

  1. 在服务器中拉取jdk1.8的镜像

docker pull jdk8

  1. 创建目录,并将jar包上传到该目录

cd /server/

mkdir deploy/jar

  1. 运行容器:在运行容器的命令里指定包的运行

docker run -d \

–restart=always \

-v /server/deploy/jar:/jar

-v /server/logs/demo:/mnt/logs/demo \

-p 7778:7778 \

–name demo \

jdk8 /usr/bin/java -jar \

-Duser.timezone=GMT+08 \

/jar/demo-1.0.jar

上面命令的说明:

  • -Duser.timezone :指定时区

### 如何使用 Docker 部署 Java JAR #### 准备工作 为了成功部署Java应用程序作为Docker容器,需先准备好待打的应用程序JAR文件。确保该文件位于主机系统的指定目录下。 #### 下载基础镜像 获取官方OpenJDK镜像是必要的前置条件之一。这可以通过执行`docker pull openjdk:11`来完成[^3]。此操作将拉取适用于大多数现代Java应用的稳定版OpenJDK 11环境至本地机器上。 #### 启动并运行容器化应用 一旦拥有目标JAR文件以及适当的基础镜像之后,则可通过如下命令启动服务: ```bash docker run -d --name my-java-app \ -v /path/to/application.jar:/app/app.jar \ -p hostPort:containerPort \ openjdk:11 sh -c 'java $JAVA_OPTS -jar /app/app.jar' ``` 上述脚本中的参数说明如下: - `-d`: 表示以后台模式运行容器; - `--name my-java-app`: 给创建的新容器命名; - `-v /path/to/application.jar:/app/app.jar`: 将宿主机上的路径映射到容器内部特定位置;这里假设外部路径为`/path/to/application.jar`, 而在容器内的对应地址则设为`/app/app.jar`; - `-p hostPort:containerPort`: 定义端口转发规则,其中左边为主机开放给外界访问的实际端口号,而右侧则是容器监听的服务端口; - `sh -c 'java $JAVA_OPTS -jar /app/app.jar'`: 执行启动命令,在此处调用了Java解释器加载并初始化Web服务器实例[^1]。 #### 创建自定义Dockerfile(可选) 对于更复杂的场景或者希望简化构建过程的情况来说,编写一个简单的Dockerfile可能是更好的选择。下面是一个基本的例子: ```Dockerfile FROM openjdk:11-jre-slim VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 这段配置指定了基于精简版OpenJDK 11镜像建立新镜像的过程,并设置了默认入口点用于自动启动内置于image中的application jar[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值