目录

  • 1.用IDEA将Springboot打成jar包
  • 1.1 在pom.xml文件中添加spring-boot-maven-plugin映射
  • 1.2 此处有坑(如果项目引用的jar包不是maven中的,就是自己手动导入的jar)需将手动导入的jar包写入pom.xml中去。举个例子。
  • 1.3 用IDEA生成Jar包
  • 2.将项目部署到Docker中
  • 2.1安装docker
  • 2.2将jar包上传至docker中,生成镜像。
  • 3.MySQL数据库部署到docker中
  • 3.1在docker中下载MySQL数据库
  • 3.2 运行mysql镜像
  • 3.3进入容器
  • 3.4进入数据库
  • 3.5修改数据密码


1.用IDEA将Springboot打成jar包

1.1 在pom.xml文件中添加spring-boot-maven-plugin映射

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <includeSystemScope>true</includeSystemScope>
    </configuration>
</plugin>

1.2 此处有坑(如果项目引用的jar包不是maven中的,就是自己手动导入的jar)需将手动导入的jar包写入pom.xml中去。举个例子。

docker 运行springboot jar springboot2.4 docker_项目部署


sqljdbc4-4.0jar这个包先前在maven一直下载不来,后来自己下载来导入项目中去。

docker 运行springboot jar springboot2.4 docker_MySQL_02


在打jar包时,需要自己根据jar添加映射。Maven 各种映射的地址:https://mvnrepository.com/

//注意,这两行的配置
<scope>system</scope>
<systemPath>${project.basedir}/lib/sqljdbc4-4.0.jar</systemPath>
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>4-4.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/sqljdbc4-4.0.jar</systemPath>
</dependency>

1.3 用IDEA生成Jar包

点击Run菜单,选择Edit Configuration。

docker 运行springboot jar springboot2.4 docker_项目部署_03


选择Maven

docker 运行springboot jar springboot2.4 docker_MySQL_04


点击+号,选择Maven

docker 运行springboot jar springboot2.4 docker_docker_05


可以自定义Name,输入指令:clean package,点击OK。我这里nfjar就是一个。

docker 运行springboot jar springboot2.4 docker_MySQL_06


选择运行项目运行。

docker 运行springboot jar springboot2.4 docker_docker_07


jar包生成在target目录下。

docker 运行springboot jar springboot2.4 docker_MySQL_08

2.将项目部署到Docker中

2.1安装docker

https://www.runoob.com/docker/windows-docker-install.html 修改docker镜像地址,添加加速器
Docker 国内镜像:
阿里云的加速器:https://help.aliyun.com/document_detail/60750.html
网易加速器:http://hub-mirror.c.163.com
官方中国加速器:https://registry.docker-cn.com
ustc的镜像:https://docker.mirrors.ustc.edu.cn
daocloud:https://www.daocloud.io/mirror#accelerator-doc(注册后使用)

docker-machine ssh default 
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile 
exit 
docker-machine restart default

2.2将jar包上传至docker中,生成镜像。

写Dockerfile文件(没有文件类型)

FROM java:8
VOLUME /tmp
COPY  nanzeface.jar /nanzeface.jar
CMD java -jar /nanzeface.jar
EXPOSE 8086

FROM后面是java8环境,COPY(ADD)后面是要上传的jar包,EXPOSE后面是暴露的接口。
将Dockerfile文件和nanzeface.jar放到统一目录下。
在当前目录下,Shift+右击,打开命令窗口。输入

docker build -t nanzeface .

注意镜像名可以自定义,在镜像名后面一个‘.’

查看镜像

docker images

运行镜像

docker run nanzeface

修改容器的端口形式

//刚上传的web项目端口可能是
8086/tcp   //这是个坑

这样的形式外网是无法根据IP地址访问的8086端口的
停止运行的容器

docker stop nanzeface

以这种形式运行镜像

docker run -p 8086:8086 nanzeface   //-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

docker 运行springboot jar springboot2.4 docker_MySQL_09

3.MySQL数据库部署到docker中

3.1在docker中下载MySQL数据库

docker pull mysql //如果不指定版本号,就下载最新版的

3.2 运行mysql镜像

$ docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 mysql  
//-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
//--name mysql02 容器名
//-e MYSQL_ROOT_PASSWORD=123456  初始化密码

3.3进入容器

$ docker exec -it mysql02 /bin/bash
//-i :即使没有附加也保持STDIN 打开
//-t :分配一个伪终端

3.4进入数据库

docker 运行springboot jar springboot2.4 docker_Springboot_10

3.5修改数据密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

flush privileges;