用Docker部署Springboot 项目

用Docker部署Springboot 项目

文章目录

  • 用Docker部署Springboot 项目
    • 一、环境搭建
      • 1.ubuntu环境下docker安装
        • 安装完成后启动Docker服务,并设置为开机自启动
        • 查看版本信息
      • 2.安装Maven和配置阿里云镜像
        • 下载Maven
        • 解压和移动
        • 配置环境变量
        • 查看版本信息
        • 配置maven的阿里云镜像
    • 二、Spring Boot项目添加Docker支持
      • 1.新建Spring Boot工程——hellotest
      • 2.添加Docker支持
      • 3.编写Dockerfile文件
    • 三、部署Spring Boot工程
          • 在项目路径下运行终端,通过maven指令进行打包
          • 执行如下指令,运行项目
          • 执行如下指令,构建Docker镜像
          • 使用`docker images`命令查看构建好的镜像:

​ 本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。

一、环境搭建

1.ubuntu环境下docker安装

参考教程:https://www.cnblogs.com/blog-rui/p/11244023.html

  • 安装完成后启动Docker服务,并设置为开机自启动

使用下列命令:

systemctl start docker.service 
systemctl enable docker.service
  • 查看版本信息

输入docker version,返回版本信息表明Docker安装成功。

2.安装Maven和配置阿里云镜像

  • 下载Maven

在某个文件夹打开终端,执行以下命令行

wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
  • 解压和移动

tar vxf apache-maven-3.5.4-bin.tar.gz  

//下面的“/usr/local/maven3”为想要移动的目录,这里的移动是将“apache-maven-3.5.4”文件夹里的东西放到“/usr/local/maven3”目录下
mv apache-maven-3.5.4 /usr/local/maven3
  • 配置环境变量

打开环境变量vim /etc/profile,在最下面添加如下内容:

MAVEN_HOME=/usr/local/maven3 
export MAVEN_HOME 
export PATH=${PATH}:${MAVEN_HOME}/bin

保存并退出::wq

刷新环境变量的配置使其生效:source /etc/profile

  • 查看版本信息

使用命令mvn -v进行查看

[root@localhost ~]# mvn -v Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) Maven home: /usr/local/maven3 Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_211/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
  • 配置maven的阿里云镜像

切换到maven安装目录的配置文件(/usr/lcoal/maven3/conf)下面,打开settings.xml文件,在标签里面添加:

 
    alimaven 
    aliyun maven 
    http://maven.aliyun.com/nexus/content/groups/public/ 
    central 
 


	nexus-aliyun 
	central 
	Nexus aliyun 
	http://maven.aliyun.com/nexus/content/repositories/central 

二、Spring Boot项目添加Docker支持

1.新建Spring Boot工程——hellotest

启动类如下:

@RestController
@SpringBootApplication
public class HellotestApplication {

    public static void main(String[] args) {

        SpringApplication.run(HellotestApplication.class, args);
    }

    @RequestMapping("/")
    public String hello(){
        return "Hello,Springboot with Docker!";
    }

}

2.添加Docker支持

在 pom.xml中添加Docker镜像名称及添加 Docker插件。

  • 标签里添加。
   
 	springboot 

  • --> 标签里添加

        
            com.spotify
            docker-maven-plugin
            1.0.0
            
                ${docker.image.prefix}/${project.artifactId}
                src/main/docker
                
                    
                        /
                        ${project.build.directory}
                        ${project.build.finalName}.jar
                    
                
            
        

3.编写Dockerfile文件

在Springboot工程目录src/main下创建Directory命名为dockerDockerfile 文件,Dockerfile 文件用来说明如何来构建镜像。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  • FROM指令指定一个已经存在的镜像,告诉Docker后续的指令都是在这个基础上进行的。例如:FROM java:8表示使用 Jdk1.8 环境为基础镜像进行构建镜像。

  • VOLUME ,VOLUME 指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录

  • ADD ,拷贝文件并且重命名

  • ENTRYPOINT,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT。

三、部署Spring Boot工程

将主机的项目代码拷贝服务器或虚拟机中,在虚拟机中进入项目路径。如编者是“/usr/local/projects/hellotest”.

  • 在项目路径下运行终端,通过maven指令进行打包
mvn package

若报错中包含以下这一句

Unknown host maven.aliyun.com: 域名解析暂时失败 -> [Help 1]

则可以尝试如下修改

在终端输入指令vim /etc/resolv.conf然后加入nameserver 114.114.114.114

  • 执行如下指令,运行项目
java -jar target/hellotest-0.0.1-SNAPSHOT.jar

如出现以下界面,代表项目启动成功,说明环境配置没有问题,接下来可以使用Dockerfile构建镜像。

用Docker部署Springboot 项目_第1张图片

  • 执行如下指令,构建Docker镜像
mvn package docker:build

用Docker部署Springboot 项目_第2张图片

可以看到docker镜像构建成功,仔细看日志,会发现四个步骤和Dockerfile中的指令是一一对应的。

  • 使用docker images命令查看构建好的镜像:

在这里插入图片描述

  • 运行docker镜像
docker run -d -p 8080:8080 -t springboot/hellotest
  • 在虚拟机浏览器进行访问,可以看到返回结果,说明部署成功。
    用Docker部署Springboot 项目_第3张图片

部分内容参考博客:https://www.cnblogs.com/sgh1023/p/11079003.html

你可能感兴趣的:(docker)