文章目錄
- 1、打 jar 包
- 1、創建Dockerfile
- 3、創建鏡像
- 4、啟動容器
- 其他注意事項
- docker中jdk的版本命名
- 舉例:openjdk:11-ea-17-jre-slim
- 舉例:8u312-jre-nanoserver-1809
- 通過find找文件
1、打 jar 包
將項目打一個 jar 包,可以使用 IDEA
1、創建Dockerfile
在項目根目錄創建Dockerfile文件
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY target/zy-spring-boot-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
3、創建鏡像
# 項目根目錄執行
docker build -t zy-spring-boot:1.0.0 .
4、啟動容器
docker run -p 9090:9090 zy-spring-boot:1.0.0
執行結果和你 java -jar 的一樣
其他注意事項
docker中jdk的版本命名
我們在 Dockerfile 中寫的 FROM openjdk:17-jdk-slim
就是從 dockerhub 中搜的,以下是一些命名規則
舉例:openjdk:11-ea-17-jre-slim
- openjdk:表示這是一個 OpenJDK(Open Java Development Kit)的鏡像。OpenJDK 是一個開源的 Java 開發工具包。
- 11:表示 OpenJDK 的版本號。在這個例子中,版本號為 11。
- ea:表示這是一個“早期訪問”(Early Access)版本。EA 版本是為了讓用戶在正式發布之前嘗試新特性和改進的版本。
- 17:表示這個 EA 版本的具體構建號。每個 EA 版本都有一個唯一的構建號。
- jre:表示這是一個包含 Java 運行時環境(JRE)的鏡像。JRE 包含了運行 Java 應用程序所需的最小環境。
- slim:表示這是一個較小的基礎鏡像,以減小鏡像的大小。通常,slim 版本使用了較小的操作系統作為基礎。
舉例:8u312-jre-nanoserver-1809
- 8u312:表示這是 Java 版本 8 的更新版本,具體為第 312 次更新。這里的 “u” 表示 “update”,表示 Java 的更新版本。
- jre:表示這是一個包含 Java 運行時環境的鏡像。JRE 包含了運行 Java 應用程序所需的最小環境,不包括開發工具。
- nanoserver:表示這個鏡像是基于 Windows Nano Server 構建的。Nano Server 是 Windows Server 2016 中的一種輕量級部署選項,用于運行云原生應用。
- 1809:表示這個鏡像是基于 Windows Server 版本 1809 構建的。這是 Windows Server 2019 的早期版本號。
通過find找文件
我想找到 mysql 的 my.cnf 文件,但是不知道在哪,可以這么找
sudo find /opt -name my.cnf
> mysql --help
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /opt/homebrew/etc/my.cnf ~/.my.cnf