docker实战部署Springboot项目

Docker学习之路(六) 实战部署Springboot项目

部署前 咱们先删除 服务器上的全部 镜像以及 容器

docker rmi -f $(docker images -aq)

docker rm -f $(docker images -aq)
docker 安装 Mysql 容器
docker run -it -d -v /docker/volumes/mysql/conf:/etc/mysql/conf.d -v /docker/volumes/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql -p 3306:3306 mysql:5.7.30

image-20200524181017202

导入sql 文件到我们的容器 mysql 中
在这里插入图片描述

使用 idea 将其打包成docker镜像
(1)准备

我们也可以使用idea 连接到我们 服务器上的docker

首先 需要下载一个插件 名为 docker 2020版IDEA 已经默认给我们下载好了

image-20200524183947009

image-20200524184018228

这里设置要连接的docker 服务地址以及端口

docker 默认是未开启外部访问的

idea 需要连接的话 咱们需要额外配置,使其开启远程访问

vim /usr/lib/systemd/system/docker.service

注意查看文件 稍微修改一点

image-20200524184314558

保险起见 复制之前的文件并注释

使用我们下边这行代码配置 其暴露端口 随意 (注意安全组以及防火墙开放对应)

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:6500 -H unix:///var/run/docker.sock

重启

systemctl daemon-reload
systemctl restart docker

然后使用IDEA 再次连接,就可以了

image-20200524184522652

至于 在idea 中 打包项目到docker 有多种方式

我这里采用的mvn 打包 ,并设置 Img 前缀为阿里云一个仓库的名字

(2) pom.xml 添加 plagin

我这里附上我的整个build

<build>
		<finalName>springboot-shiro</finalName>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>false</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<includeSystemScope>true</includeSystemScope>
					<mainClass>${startup.main}</mainClass>
				</configuration>
			</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一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 -->
					<!-- 详见:https://github.com/spotify/docker-maven-plugin    Invalid repository name ... only [a-z0-9-_.] are allowed-->
					<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
					<!-- 指定Dockerfile所在的路径 -->
					<dockerDirectory>${project.basedir}/docker</dockerDirectory>
					<dockerHost>http://47.97.118.22:6500</dockerHost>
					<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-compiler-plugin</artifactId>
				<configuration>
					<source>8</source>
					<target>8</target>
				</configuration>
			</plugin>
			<!--添加配置跳过测试-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.1</version>
				<configuration>
					<skipTests>true</skipTests>
				</configuration>
			</plugin>
		</plugins>
	</build>

在上方的 properties 添加 阿里云仓库前缀 以及项目启动类所在位置

		<docker.image.prefix>registry.cn-chengdu.aliyuncs.com/leileideve/spring-boot-project</docker.image.prefix>
		<startup.main>com.example.leilei.SpringbootShiroApplication</startup.main>

image-20200524210953639

(3)编写咱们的 Dockerfile文件

我这里指定的Dockerfile路径 是 项目根目录/docker/

对应着我们打包插件的

<dockerDirectory>${project.basedir}/docker</dockerDirectory>
#所需基础镜像
FROM openjdk:8-jdk-alpine
#作者信息
MAINTAINER leilei<leileideve@163.com>
#具名挂载
VOLUME /docker/springboot
#端口暴露80
EXPOSE 80
#将我们的jar 添加到容器中 并取名为application.jar
ADD springboot-shiro.jar application.jar
# 执行命令
ENTRYPOINT ["java","-Xmx350m","-jar" ,"application.jar"]

image-20200524211605858

(4) 执行打包命令
mvn clean package docker:build

目前仅运行了我们开始创建的 mysql 容器

image-20200524211935431

我们开始打包

打包中–Log 日志

image-20200524212047331

打包完成

image-20200524211750948

查看服务器 —船新版本的我们自己项目容器 就搭建好了!!!

image-20200524212254576

运行

docker run -d -p 6501:80 --name springboot-shiro 9ed51ea36a98

image-20200524212359994

浏览器查看 -----------来咯来咯,他真的来咯

image-20200524212448532

我们登陆进去 测试一下是否能连到咱搭建的mysql 容器-------------也是可以的

把我们的项目镜像 推送到 阿里云仓库

具体的 推送流程 请查看学习五 或者 查看查看阿里云 (创建仓库后教程非常详细)

sudo docker login --username=xxxxxxxx registry.cn-chengdu.aliyuncs.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5fKhG0r7-1590327481740)(C:\Users\leilei\AppData\Roaming\Typora\typora-user-images\image-20200524213057803.png)]

image-20200524213458099

那么 目前的 通过Dockerfile文件创建容器 以及在IDEA 中一键打包项目到docker 就完成了!

后续更新 idea 中 项目打包镜像 以及推送到 自己私有仓库 !

Bye Bye~~~~

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值