docker 将jar包打成docker镜像

构建三步骤:

  • 编写Dockerfile文件
  • docker build 命令构建镜像
  • docker run 根据镜像运行容器实例

docker官网

不废话,直接上案例,这是本人在公司使用的打镜像方式,与上面的构建步骤略有不同。

以下文件都是在同一个目录文件夹下!!!

1、编写Dockerfile文件,通过Dockerfile文件将jar包打成镜像

FROM:

        基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是FROM

EXPOSE:

        当前容器对外暴露出的端口

ENTRYPOINT:

        用来指定一个容器启动时要运行的命令,类似于 CMD 指令,但是ENTRYPOINT不会被docker run后面的命令覆盖, 而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序

#方式一:
FROM openjdk:8
EXPOSE 9099
ENTRYPOINT ["sh","/usr/data/run.sh"]

---------------------------------------

#方式二:
FROM openjdk:8-jre
#把jar包添加到镜像中
Add app.jar /usr/data/app.jar
#设置时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 8088
CMD java -jar /usr/data/app.jar

2、编写执行脚本(方式二不用)

很简单,就是执行jar包的命令

vim run.sh

java -jar /usr/data/app.jar

3、通过dockerfile构建镜像

将jar包上传至Dockerfile文件同一目录下,执行docker build

格式:

        docker build -f Dockerfile路径 -t 镜像名称:版本号 .

docker build -f /home/xxx/Dockerfile -t app:1.0.0 .

注意最后有一个 “ . ” !!!

看到Successfully镜像就构建成功了。

4、查看镜像

docker images

5、运行docker镜像

docker run 
-it --log-opt max-size=1024m 
--log-opt max-file=31 --restart=always 
-d --name=app-service 
-p 9099:9099 
-v /home/xxx:/usr/data             #本地Dockerfile所在的文件目录挂载到容器内
-v /etc/localtime:/etc/localtime:ro 
-v /var/run/docker.sock:/var/run/docker.sock  
-v /usr/bin/docker:/usr/bin/docker 
app:1.0.0

-------------------------------------------

docker run -d --restart=always --privileged=true -p 80:80 --name=app app:latest

查看启动的容器

docker ps

 

6、将压缩成tar包镜像下载到本地

# XXX是你刚生成的镜像
docker save XXX:1.0 | gzip > XXX_1.0.tar.gz

  7、将镜像部署到另一个docker容器里

docker load -i XXX_1.0.tar.gz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值