Java Docker模板的使用

日常开发工作中,可以把jar包发布为一个docker服务。

如下是一个简单的Dockerfile文件,前提是将Dockerfile和jar包放在同一目录,比如~/dev/test。

FROM java:8
ADD psa2-0.0.1-SNAPSHOT.jar /qqq/
ENTRYPOINT ["java","-jar","/qqq/psa2-0.0.1-SNAPSHOT.jar"]
EXPOSE 6666

在此文件中:

  • FROM 语句下载指定的映像,并创建基于此映像的新容器。
  • WORKDIR 命令在容器中设置当前工作目录,供以下命令使用。
  • COPY 命令将文件从主计算机复制到容器。 第一个参数 (myapp_code) 是主计算机上的文件或文件夹。 第二个参数 (.) 指定文件或文件夹的名称来充当容器中的目标位置。 在本例中,目标位置是当前工作目录 (/app)。
  • RUN 命令执行容器中的命令。 RUN 命令的参数是命令行命令。
  • EXPOSE 命令创建新映像中的配置,指定在容器运行时计划打开哪些端口。 如果容器运行 Web 应用,则通常会通过 EXPOSE 命令指定端口 80。
  • ENTRYPOINT 命令指定容器启动时应该运行的操作。 在本示例中,它运行新生成的应用。 指定要运行的命令,并将每个参数都指定为字符串数组。

如下命令编译该docker。

sudo docker build -t psaok .

//假设 psa这个jar包本身对外提供服务的端口号是8888。

那么,使用如下命令运行该docker。

sudo docker run -d -p 6666:8888 --name psaok psaok

在这里:左边6666是 服务器上提供端口的地址。

              右边8888是Docker内部的端口地址。

这样,就可以使用 http://ip地址:6666 访问该容器了。

注意:如果是在云的虚拟机中部署,需要为其添加入站访问端口权限。

如下命令打开该docker。

sudo docker exec -it psaok bash

bash是指开了一个bash窗口。

进入到psaok的docker中,可以看到存在了一个/qqq目录。

注意:执行如上命令可能失败,可能是bash路径不对,也可能时没有bash,则会报如下错误

OCI runtime exec failed: exec failed: unable to start container process: exec: "/usr/bin/bash": stat /usr/bin/bash: no such file or directory: unknown

这时,需要将bash替换为 sh,或者/bin/sh。

那么,如果jar包中的接口函数本身调用了需要认证的api,则需要为docker中的jdk添加该认证文件。

假设从windows机器上已有生成的认证文件 jssecacerts,则运行命令将其拷贝到docker中。

sudo docker cp jssecacerts 60753f347667:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security

之后docker restart psaok即可。

参照:

使用Dockerfile文件制作java的jar架包镜像具体过程

使用Dockerfile文件制作java的jar架包镜像具体过程_dockerfile java -jar-CSDN博客

注意:每个Dockerfile只能有一条CMD指令,如果指定了多条指令,则最后一条执行

自定义 Docker 映像以运行自己的 Web 应用

自定义 Docker 映像以运行自己的 Web 应用 - Training | Microsoft Learn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值