0
点赞
收藏
分享

微信扫一扫

docker实战部署Springboot项目

晚安大世界 2022-04-18 阅读 75
java后端

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:UsersleileiAppDataRoamingTypora ypora-user-imagesimage-20200524213057803.png)]

image-20200524213458099

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

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

Bye Bye~~~~

举报

相关推荐

0 条评论