zoukankan      html  css  js  c++  java
  • 在 Docker 中运行 SpringBoot 应用

    创建 SpringBoot 项目

    用 Idea 创建一个 SpringBoot 项目,编写一个接口:

    package cloud.dockerdemo
    
    import org.springframework.web.bind.annotation.RequestMapping
    import org.springframework.web.bind.annotation.RequestMethod
    import org.springframework.web.bind.annotation.RestController
    
    @RestController
    class HelloDocker {
    
        @RequestMapping(value = ["/"], method = [RequestMethod.GET])
        fun hello(): String {
            return "<h1>Hello, Docker!</h1>"
        }
    }
    

    这里用的 Kotlin 语言,用 Java 的话,注解是一样的。

    下载 OpenJDK 镜像

    只用下载 jre 就行,只有 57MB。

    docker pull openjdk:8u212-jre-alpine
    

    在项目根目录下建立 Dockerfile

    FROM openjdk:8u212-jre-alpine
    
    WORKDIR /home/dev
    
    COPY ./target/*.jar /home/dev/app.jar
    
    CMD ["java", "-jar", "app.jar"]
    
    • target 目录就是 maven 打包输出 jar 的目录,把打包的 jar 文件拷贝到容器中。
    • CMD 就是容器启动时执行的命令,即 java -jar app.jar

    注意这里运行 jar 没有使用 & 符号,因为在 Docker 容器中运行的程序必须是前台的,如果用后台方式运行,命令执行完容器就直接停止了。

    构建镜像

    在终端中把工作目录切换到项目目录,执行:

    docker build -t <镜像名称> .
    

    最后的 . 不能掉,它指定了上下文目录为当前目录。

    运行容器

    docker run --name <容器名称> -d -p 8080:8080 <上一步构建的镜像名称>
    

    运行后,可以使用 docker ps 命令查看是否成功运行。

    访问 localhost:8080 访问接口:

  • 相关阅读:
    类的加载与ClassLoader的理解
    反射:获取Class 类的实例(四种方法)
    磁盘调度算法
    死锁检测算法
    银行家算法
    最低松弛度调度算法模拟
    多级反馈队列调度算法
    内存中:请求调页存储管理方式的模拟
    内存的动态分区分配方式的模拟
    “短进程优先”调度算法
  • 原文地址:https://www.cnblogs.com/cloudfloating/p/10851315.html
Copyright © 2011-2022 走看看