源码时代Java干货分享|手把手教你用maven构建docker镜像
Posted IT-source
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码时代Java干货分享|手把手教你用maven构建docker镜像相关的知识,希望对你有一定的参考价值。
一 、原理分析
由于我们开发pc上面没有docker,所以没办法直接打包镜像,所以要调用远程主机docker进行。并且远程主机docker默认不支持远程访问,所以需要开启远程。然后我们在项目中以docker maven插件方式进行打包镜像。
具体步骤如下:
1 远程主机docker支持远程访问
2 本地项目配置maven docker插件,并允许打包镜像
二 远程主机docker支持远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
修改后如下(2)刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start registry
172.16.4.194:2375
防火墙对该端口放行
firewall-cmd --permanent --zone=public --add-port=2375/tcp
systemctl restart firewalld
三 本地项目配置maven docker插件,并允许打包镜像
3.1 配置docker maven插件
eureka
org.springframework.boot
spring-boot-maven-plugin
cn.itsource.hrm.EurekaServer7001Application
repackage
com.spotify
docker-maven-plugin
0.4.13
172.16.4.194:5000/
p
r
o
j
e
c
t
.
a
r
t
i
f
a
c
t
I
d
:
project.artifactId:
project.artifactId:project.version
jdk1.8
[“java”, “-jar”, "/
p
r
o
j
e
c
t
.
b
u
i
l
d
.
f
i
n
a
l
N
a
m
e
.
j
a
r
"
]
<
/
e
n
t
r
y
P
o
i
n
t
>
<
r
e
s
o
u
r
c
e
s
>
<
r
e
s
o
u
r
c
e
>
<
t
a
r
g
e
t
P
a
t
h
>
/
<
/
t
a
r
g
e
t
P
a
t
h
>
<
d
i
r
e
c
t
o
r
y
>
project.build.finalName.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>
project.build.finalName.jar"]</entryPoint><resources><resource><targetPath>/</targetPath><directory>project.build.directory
$project.build.finalName.jar
http://172.16.4.194:2375
以上配置会自动生成Dockerfile
FROM jdk1.8
ADD app.jar /
ENTRYPOINT [“java”,"‐jar","/app.jar"]
3.2 打包镜像并运行容器
3.2.1 打包
在windows的命令提示符下,进入工程hrm_eureka_7001所在的目录
进入Eureka 所在的目录,输入以下命令,进行打包和上传镜像
mvn docker:build ‐DpushImage
3.2.2 查看镜像
进入宿主机 , 查看镜像
输出如上内容,表示微服务已经做成镜像
浏览器访问 http://192.168.184.141:5000/v2/_catalog ,输出
“repositories”:[“hrm_eureka”]
3.2.3 启动容器
docker run ‐di ‐‐name=eureka ‐p 7001:7001
192.168.184.141:5000/hrm_eureka:1.0‐SNAPSHO
以上是关于源码时代Java干货分享|手把手教你用maven构建docker镜像的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# 手把手教你用Java打造一款简单故事书(上篇)
手把手教你用 CNN 识别验证码(干货!建议收藏) | 第12天
# yyds干货盘点 # 手把手教你使用Python网络爬虫实现邮件定时发送(附源码)