【保姆級】Java程序打包Docker镜像教程

开始

1. 创建Dockfile文件

在我们的项目根目录 创建一个Dockfile文件(右鍵新建选file)
在这里插入图片描述

  • 该文件描述docker引擎应该如何构建我们的镜像

2. 编写Dockfile文件

# 选择一个基础镜像,我们将在该镜像基础上进行调整
FROM java:8
# 将我们项目的jar包添加到容器的根目录
# ADD xxx/xxx.jar(可执行jar包的位置,相对于Dockfile所在目录 或者 提供绝对路径) /app.jar(在容器中的位置和名字,可以自定义,建议使用默认)  
ADD target/dm.jar /app.jar
# 声明挂载目录,
# 声明后我们可以在启动镜像时,通过-v /xxx:/dmhome的方式将该目录挂载到容器所在的宿主机的真实目录
# 此处使用/dmhome,可以根据自己需求进行修改,也可以不用
VOLUME /dmhome
# 声明该镜像在运行时的环境变量(就是操作系统的环境变量) 
# 如果你的应用需要在启动时传递额外配置或某些参数,我们可以使用这种方式传递
ENV URL_ENDPOINT 'http://47.98.160.46:8088'
ENV TP_ENABLE 'false'
ENV DSS_ENDPOINT 'http://agis.xair.cn:8080'
ENV SERVER_UUID ''
ENV PROCESS_UUID 'a6e04878-94e5-4748-ab20-377538ac41a7'
ENV STAGE_UUID '253eb625-9e01-4330-92fd-0cdb83c1dece'
# 启动我们的应用,如果更改了app.jar的名字,则此处也需要修改
CMD java -jar /app.jar

3. 生成镜像

3.1 编译源代码

  • 生成可执行jar(此处请根据自身项目特点进行调整,只要生成的jar是可执行即可)
  • 生成的jar,以及位置:
    在这里插入图片描述
    注意,此处生成的jar的位置是在项目根目录下的target目录,所以在上一个步骤中:
    ADD target/dm.jar /app.jar命令中的可执行jar路径为target/dm.jar,如果不同,请进行相应调整

3.2 镜像构建

(执行命令前请确保当前目录在项目根目录):

docker image build -t vate/xag:dm .

参数说明:

  • vate/xag:dm :用户名/仓库名:标签名
  • .:docker命令执行的上下文路径,.代表当前路径

3.3 流程示例

3.3.1 先登录!!!!!!!!!!
docker login -u aqin1012 -p baihehua1012
3.3.2 查看镜像以及tag名
docker images
3.3.3 改名(一样不用改)

将需要推送的tag需要与推送到的目的仓库名一致(不一致需要改下)

  • 将vate/xag改为aqin1012/xag_datamigration
docker tag vate/xag aqin1012/xag_datamigration

4. 镜像推送到远程仓库

4.1 创建docker-hub帐号,并创建仓库

创建成功如下图:
在这里插入图片描述

4.2 登录
docker login -u 用户名 -p 密码

在这里插入图片描述

4.3 推送镜像到远程仓库
docker push aqin1012/xag_datamigration:datamigration

在这里插入图片描述

  • aqin1012/xag_datamigration:datamigration 需要换成你自己的镜像名称
4.4 成功后查看镜像仓库

注意:关于镜像名称,有一点很重要,在docker-hub中,镜像名称会直接决定该镜像属于哪个用户的哪个仓库
所以标准的docker-hub镜像名称的格式为:用户名/仓库名:标签名
比如在本示例中:

docker image build -t vate/xag:dm . 
vate:帐户名  
xag:仓库名  
dm:标签名,也即我的项目的名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AQin1012

求小鱼干呢~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值