jar包制作Docker镜像

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路jar包制作Docker镜像,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、编写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程序

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

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155934.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!