Docker 快速部署 SpringBoot2 项目

一 使用Maven 插件 docker-maven-plugin 构建部署

1.1 配置Docker2375 端口

找到 docker.service 配置文件

编辑:vim /usr/lib/systemd/system/docker.service,在 ExecStart=/usr/bin/dockerd-current 后增加如下配置

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重启docker

systemctl daemon-reload

systemctl restart docker

1.2 配置 Docker 地址,构建 Docker 镜像并上传

配置 Docker 地址

	<properties>
		<!-- docker配置 -->
		<docker.host>http://192.168.56.101:2375</docker.host>
		<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
		<docker.images.prefix>microservice</docker.images.prefix>
	</properties>

配置构建 Docker 镜像信息

<build>
			<plugins>
				<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
					<!-- 引入系统范围内的依赖 -->
					<configuration>
						<includeSystemScope>false</includeSystemScope>
					</configuration>
				</plugin>
				<!-- docker镜像 -->
				<plugin>
					<groupId>com.spotify</groupId>
					<artifactId>docker-maven-plugin</artifactId>
					<version>${docker.maven.plugin.version}</version>
					<executions>
						<execution>
							<id>build-image</id>
							<phase>package</phase>
							<goals>
								<goal>build</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<imageName>${docker.images.prefix}/${project.artifactId}:${project.version}</imageName>
						<dockerHost>${docker.host}</dockerHost>
						<baseImage>java:8</baseImage>
						<entryPoint>["java", "-jar", "-Dspring.profiles.active=test","/${project.build.finalName}.jar"]
						</entryPoint>
						<resources>
							<resource>
								<targetPath>/</targetPath>
								<directory>${project.build.directory}</directory>
								<include>${project.build.finalName}.jar</include>
							</resource>
						</resources>
					</configuration>
				</plugin>
				<!--添加配置跳过测试-->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.22.2</version>
					<configuration>
						<skipTests>true</skipTests>
					</configuration>
				</plugin>
			</plugins>
	</build>

点击 maven 中 package 打包并上传

1.3 查看镜像

docker images

1.4 安装运行容器

docker run -p 8084:8040 --restart=always --name microservice-project -v /etc/localtime:/etc/localtime -v /mydata/app/project/logs:/var/logs -d microservice/cloud-project:0.0.3-SNAPSHOT

二 使用Dockerfile构建部署

2.1 在服务器指定位置创建目录,如:project_docker,在该文件夹下创建 Dockerfile

vim Dockerfile
# 该镜像需要依赖的基础镜像
FROM java:8
# 指定维护者的名字
LABEL maintainer=lc
# 定义匿名数据卷
VOLUME /tmp
# COPY 复制资源到容器中
COPY cloud-project-0.0.3-SNAPSHOT.jar /app/cloud-project-0.0.3-SNAPSHOT.jar
COPY application.properties application.properties
# 指定docker容器启动时运行jar包和配置文件
ENTRYPOINT ["java","-Xms256m", "-Xmx256m","-jar","/app/cloud-project-0.0.3-SNAPSHOT.jar","--spring.config.location=/application.properties","-Dfile.encoding=UTF-8"]

2.2 dockerfile常用指令

 2.3 上传微服务jar,构建镜像

docker build -t cloud-project:0.0.3 .

2.4 安装运行容器

docker run -p 8848:8848 --restart=always --name cloud-project -v /home/project/jar/project_docker/logs:/logs -d cloud-project:0.0.3

 2.5 编写自动化脚本

  vim run.sh

#!/bin/bash
# 定义应用组名
group_name='scistor'
# 定义应用名称
app_name='cloud-project'
# 定义应用版本
app_version='0.0.3-SNAPSHOT'
# 定义应用环境
profile_active='qa'
echo '----copy jar----'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker rmi ${group_name}/${app_name}:${app_version}
echo '----rm image----'
# 打包编译docker镜像
docker build -t ${group_name}/${app_name}:${app_version} .
echo '----build image----'
docker run -p 8844:8844 --restart=always --name ${app_name} -v /home/project/jar/project_docker/logs:/logs -d ${group_name}/${app_name}:${app_version}
echo '----start container----'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十点摆码

有用你就打赏一下

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

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

打赏作者

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

抵扣说明:

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

余额充值