zoukankan      html  css  js  c++  java
  • Docker部署SpringBoot项目

    1. 部署Docker

      Docker 安装并部署Tomcat、Mysql8、Redis

    2. 创建示例项目

    • 创建项目
    • 修改pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.c3stones</groupId>
    	<artifactId>spring-boot-docker-demo</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>spring-boot-docker-demo</name>
    	<description>Docker Deploy Spring Boot Demo</description>
    
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.1.6.RELEASE</version>
    	</parent>
    
    	<properties>
    		<java.version>1.8</java.version>
    	</properties>
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    	</dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    
    </project>
    
    • 编写示例接口
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * 示例Controller
     * 
     * @author CL
     *
     */
    @RestController
    public class HelloController {
    
    	/**
    	 * 示例接口
    	 * 
    	 * @return
    	 */
    	@RequestMapping(value = "/hello")
    	public String hello() {
    		return "Hello Docker!";
    	}
    
    }
    
    • 编写启动类
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * 启动类
     * 
     * @author CL
     *
     */
    @SpringBootApplication
    public class Application {
    
    	public static void main(String[] args) {
    		SpringApplication.run(Application.class, args);
    	}
    
    }
    
    • 项目打包
    #方式一(已经配置maven环境变量)
    
    #进入项目根路径,执行命令
    mvn clean package
    
    #在项目根路径下找到target文件夹,从中拷贝项目包
    
    #方式二(eclipse打包)
    
    #项目名称右键,Run As -> Maven clean
    #项目名称右键,Run As -> Maven install
    
    #在maven仓库中拷贝项目包
    

    3. 编写Dockerfile

      新建文件,名称为Dockerfile,注意没有后缀名。

    # 获取openjdk8最新版本
    FROM adoptopenjdk/openjdk8:latest
    
    # 作者信息
    MAINTAINER C3Stones <lei_cao@163.com>
    
    # [可选]指定了临时文件目录,项目中存在上传文件时使用
    # 其目的为在宿主机的/var/lib/docker创建临时文件夹并映射到容器中/tmp
    # 因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
    #VOLUME /tmp
    
    # 将应用包添加到容器中,并命名为app.jar
    ADD spring-boot-docker-demo-0.0.1-SNAPSHOT.jar app.jar
    
    # 运行jar
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    

    4. 构建镜像

    # 在服务器上新建文件夹
    mkdir docker
    
    # 上传应用包和Dockerfile
    
    # 进入路径
    cd docker
    
    # 构建镜像
    # -t 项目包命名
    # . 本级目录,即Dockerfile所在目录
    # 在第一次构建时,会自动下载openjdk8
    docker build -t app .
    
    # 查看镜像
    docker images
    

    5. 创建容器并启动

    # --name 容器名称
    # -p 端口映射,将宿主机的端口映射到容器中
    # -d 后台启动
    docker run --name=demo -p 8080:8080 -d app
    
    # 查看日志
    dokcer logs -tf demo
    

    6. 测试

    curl http://localhost:8080/hello
    # 结果:Hello Docker!
    
  • 相关阅读:
    JavaScript中的的面向对象中的一些知识
    JavaScript中的Function
    jq 表格全选案例
    jq 美女相册案例
    jq 属性操作
    jq tab图片切换
    jq class操作
    jq css操作
    jquery 淘宝案例
    jquery 鼠标点击下滑案例
  • 原文地址:https://www.cnblogs.com/cao-lei/p/13278257.html
Copyright © 2011-2022 走看看