?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。
🍎個人主頁:Meteors.的博客
💞當前專欄:知識備份
?特色專欄:知識分享
🥭本文內容:Docker自定義鏡像實現(SpringBoot程序為例)
📚 ** ps ** ?:閱讀文章如果有問題或者疑惑,歡迎在評論區提問或指出。
目錄
一. 說明
二.? 實現步驟
附加
一. 說明
????????Docker自定義鏡像指的是用戶根據自己的需求和規范,使用Dockerfile或其他方式創建的一個Docker鏡像。
Dockerfile說明:
? ? ? ? DockerFile是一個文本文件,其中包含一個個的指令(Instruction),用指令來說明要執行什么操作來構建鏡像。將來Docker可以根據Dockerfile幫我們構建鏡像。常見指令如下:
指令 說明 示例 FROM 指定基礎鏡像 FROM centos: 6
ENV 設置環境變量,可在后面指令使用 ENV key value COPY 拷貝本地文件到鏡像的指定目錄 COPY ./jre11.tar.gz /tmp RUN 執行Linux的shell命令,一般是安裝過程的命令 RUN tar -zxvf /tmp/jre11.tar.gz && EXPORT path=/tmp/jre11:$path
EXPOSE 指定容器運行時的監聽的端口,給鏡像使用者看 EXPOSE 8080 ENTRYPOINT 鏡像中應用的啟動命令,容器運行時調用 ENTRYPOINT java -jar xx.jar ps:官網文檔
????????這個鏡像需要包含特定的操作系統、軟件、配置文件和其他必要的組件,以滿足用戶特定的應用或開發環境需求(鏡像就是包含了應用程序、程序運行的系統函數庫、運行配置等文件的文件包。構建鏡像的過程其實就是把上述文件打包的過程。)
???????自定義Docker鏡像的好處:用戶可以根據自己的需要定制鏡像內容,從而實現快速部署、可擴展性和可移植性。
二.? 實現步驟
? ? ? ? 以運行一個SpringBoot程序為例,部署步驟如下:
- 將Java項目進行打包
- 編寫Dockerfile文檔
# 配置jdk環境 FROM openjdk:11.0-jre-buster # 設定時區 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷貝jar包到鏡像內,并改名為app.jar COPY mp-demo-0.0.1-SNAPSHOT.jar /app.jar # 入口 ENTRYPOINT ["java", "-jar", "/app.jar"]
- 構建鏡像
docker build -t mp-demo .
-
下載jdk環境(文末附下載鏈接)
- 運行鏡像
docker run -d --name mp-demo -p 8080:8080 mp-demo
?最后,通過
docker logs -f mp-demo
?我們可以看到鏡像已經運行成功了,并且swagger也可以正常的訪問!
附加
1. DokcerJDK11鏡像tar包:
????????鏈接: https://pan.baidu.com/s/1tXEmrhSG3bY0Xm4sT5iwhQ?pwd=8700 提取碼: 8700?
2. 使用:
docker load -i jdk.tar
?最后,
? ? ? ? 希望文章對你有所幫助!