栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jar包制作Docker镜像

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jar包制作Docker镜像

一、编写Dokcerfile
###FROM 指定该docker镜像运行环境(必须有此docker镜像,此处选择jdk:8)
FROM ubuntu_java8:v1
###将准备的配置文件添加到容器 (此处举例,可以将任意文件添加到docker中)
ADD antifraud-rule-0.0.1-SNAPSHOT.jar /antifraud/antifraud-rule-0.0.1-SNAPSHOT.jar
ADD config/ antifraud/config/
ADD db/ /antifraud/db/
###设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
  && echo 'Asia/Shanghai' >/etc/timezone 
RUN bash -c 'touch /antifraud/antifraud-rule-0.0.1-SNAPSHOT.jar'
# 设置工作目录
WORKDIR '/antifraud'
###ENTRYPOINT ["sh","-c"," ping 192.168.20.43"]
###容器启动命令
ENTRYPOINT ["sh","-c"," java -Duser.timezone=GMT+08 -jar /antifraud/antifraud-rule-0.0.1-SNAPSHOT.jar ${JAVA_OPTS}"]
###声明启动端口号
EXPOSE 8080

ENTRYPOINT
   ENTRYPOINT可以被 --entrypoint参数覆盖
EXPOSE 参数
  个人理解:EXPOSE 暴露的端口更像是指明了该容器提供的服务需要用到的端口
  EXPOSE 并不会直接将端口自动和宿主机某个端口建立映射关系
  如果 docker run,指定了自动映射 -P,那么会将所有暴露的端口随机映射到宿主机的高阶端口
  如果 docker run,指定了 --net=host 宿主机网络模式,容器中 EXPOSE 指令暴露的端口会直接使用宿主机对应的端口,不存在映射关系
  如果 EXPOSE 暴露的端口确定要和某个宿主机端口建立映射关系,还是要用到 docker run -p 参数
  EXPOSE 显式地标明镜像开放端口,一定程度上提供了操作的便利,也提高了 Dockerfile 的可读性和可维护性

二、制作docker镜像文件
## -t 镜像名称:镜像版本,. 表示使用当前目录下的Dockerfile文件
docker build -t test:0.1 .
## 查看镜像
docker images
## 导出镜像
docker save test:0.1 > test.tar
三、启动容器
## 使用镜像,加载
docker load < test.tar
## 运行镜像
sudo docker run -it -d -e "JAVA_OPTS=--graph.server.host=192.168.20.43" --net=host --name cmbc -p 8081:8081 cmbc_rgap:v1

其中 -e "JAVA_OPTS=–graph.server.host=192.168.20.43” 是传给执行的java -jar命令的,可以在此传参给java程序

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988887.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号