在 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 訪問接口:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM