DockerMaven插件

微服务部署有两种方法:
(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚 拟机并拷贝至JDK容器。
(2)通过Maven插件自动部署。
对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。
Maven插件自动部署步骤:
(1)修改宿主机的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

(3)在javakf_eureka工程pom.xml 增加配置

<build>
	<finalName>app</finalName>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
		<!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->
		<plugin>
			<groupId>com.spotify</groupId>
			<artifactId>docker-maven-plugin</artifactId>
			<version>0.4.13</version>
			<configuration>
				<imageName>192.168.16.130:5000/${project.artifactId}:${project.version}</imageName>
				<baseImage>jdk1.8</baseImage>
				<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
				<resources>
					<resource>
						<targetPath>/</targetPath>
						<directory>${project.build.directory}</directory>
						<include>${project.build.finalName}.jar</include>
					</resource>
				</resources>
				<dockerHost>http://192.168.16.130:2375</dockerHost>
			</configuration>
		</plugin>
	</plugins>
</build>

(4)在javakf_eureka工程的src/main目录下创建docker目录,目录下创建 Dockerfile文件,内容如下:

FROM jdk1.8
VOLUME /tmp
ADD app.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

解释下这个配置文件:

  • VOLUME 指定了临时文件目录为 /tmp 。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的 /tmp 。此步骤是可选的,如果涉及到文件系统 的应用就很有必要了。 /tmp 目录用来持久化到Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用 /tmp 作为工作目录
  • 项目的 jar 文件作为 “app.jar” 添加到容器的
  • ENTRYPOINT 执行项目 app.jar

(5)在windows的命令提示符下,进入javakf_eureka工程所在的目录,输入以下 命令,进行打包和上传镜像

mvn clean package docker:build -DpushImage

执行后,会有如下输出,代码正在上传
在这里插入图片描述
浏览器访问 http://192.168.16.130:5000/v2/_catalog ,输出

{"repositories":["javakf_eureka","jdk1.8"]}

(6)进入宿主机 , 查看镜像

docker images

在这里插入图片描述
输出如上内容,表示javakf_eureka微服务已经做成镜像
(7) 启动容器:

docker run -di --name=javakfeureka -p 8888:8888  192.168.16.130:5000/javakf_eureka:1.0-SNAPSHOT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值