Docker打包自定義鏡像的實(shí)現(xiàn)
鏡像的結(jié)構(gòu)

Docker打包鏡像
前置工作
1.虛擬機(jī)中配置好docker環(huán)境,并導(dǎo)入nginx,mysql,jdk的鏡像

2.下載docker for windows
用idea打包鏡像和創(chuàng)建容器需要這個(gè)東西支持
下載安裝包后執(zhí)行,無腦回車即可

3.idea中配置docker連接




完成配置后,點(diǎn)開docker連接,可以看到如下內(nèi)容

簡(jiǎn)單介紹一下,可以通過鏡像創(chuàng)建容器。
鏡像相當(dāng)于一個(gè)配方,容器相當(dāng)于菜肴,通過一個(gè)秘方可以創(chuàng)建無數(shù)個(gè)菜肴,同理:通過指定鏡像可以創(chuàng)建無數(shù)個(gè)容器。
每個(gè)容器相當(dāng)于一個(gè)小型linux機(jī)器,它只包含最基本的功能(內(nèi)核級(jí)功能),用一句話形容就是:麻雀雖小五臟俱全。
4.將我們的工程打成一個(gè)jar包
1.首先,修改pom文件中的skip標(biāo)簽的值為false

否則他會(huì)跳過打包我們的啟動(dòng)類,在執(zhí)行java -jar時(shí)會(huì)報(bào)如下錯(cuò)誤

2.執(zhí)行命令 mvn -clean mvn -package
也可以在界面執(zhí)行

打包好會(huì)生成一個(gè)target文件夾,我們的jar包在這個(gè)文件夾里面

兩種打包鏡像的方式
注意,鏡像的名字必須全小寫
手動(dòng)打包(不推薦,應(yīng)急情況下使用)
1.寫Dockerfile文件


# 基于jdk17以上 的鏡像創(chuàng)建 FROM openjdk:17-jdk-alpine # 將編譯后的文件復(fù)制到鏡像中,用于運(yùn)行 # 參數(shù)1 jar包所在位置(目錄+文件名) # 參數(shù)2 給這個(gè)jar起別名 用別名是為了移植方便 # ADD=COPY ADD target/TestDockerDB01-0.0.1-SNAPSHOT.jar /app.jar # 設(shè)置啟動(dòng)命令 ENTRYPOINT ["java","-jar","/app.jar"]
2.將jar包和Dockerfile文件通過ftp工具上傳到虛擬機(jī)


3. 通過命令打包鏡像
命令格式:
docker build -t 鏡像名:版本號(hào) Dockerfile所在的地址

執(zhí)行命令報(bào)錯(cuò),這是因?yàn)楫?dāng)我們把jar包移到虛擬機(jī)后,它所在的位置就不是target/TestDockerDB01-0.0.1-SNAPSHOT.jar了
這時(shí)候我們通過vi Dockerfile去修改文件

再一次檢查一下jar包和Dockerfile文件的位置,重新執(zhí)行命令


創(chuàng)建鏡像成功
idea中也能看到我們剛剛創(chuàng)建的鏡像

通過idea打包
回到Dockerfile文件,進(jìn)行配置


把Dockerfile跑起來,這里我們選擇第一個(gè),創(chuàng)建鏡像和容器

創(chuàng)建成功后會(huì)自動(dòng)啟動(dòng)容器

到此這篇關(guān)于Docker打包自定義鏡像的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker打包自定義鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Idea通過docker compose?發(fā)布項(xiàng)目的過程
這篇文章主要介紹了Idea結(jié)合docker-compose發(fā)布項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
Docker打包SpringBoot鏡像的實(shí)現(xiàn)方式
docker打包springboot鏡像,并不是簡(jiǎn)單的將springboot項(xiàng)目的jar包上傳容器里,然后啟動(dòng),這個(gè)操作很簡(jiǎn)單,但是如果我每次要查看容器中的日志就需要每次都進(jìn)入容器內(nèi)部進(jìn)行查看,這就非常麻煩了,所以本文介紹了Docker打包SpringBoot鏡像的實(shí)現(xiàn)方式,需要的朋友可以參考下2024-03-03
使用docker離線部署dify之docker鏡像問題及部署過程
這篇文章主要給大家介紹了關(guān)于使用docker離線部署dify之docker鏡像問題及部署過程,通過配置多個(gè)鏡像源解決了,此外還介紹了如何將Dify鏡像轉(zhuǎn)移到離線環(huán)境并啟動(dòng)服務(wù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
docker掛載NVIDIA顯卡運(yùn)行pytorch的方法
這篇文章主要介紹了docker掛載NVIDIA顯卡運(yùn)行pytorch的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02
docker commit與export區(qū)別小結(jié)
本文主要介紹了docker commit與export區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
詳解在Docker容器中運(yùn)行Spring Boot應(yīng)用
本文將以一個(gè)最簡(jiǎn)單的Spring Boot開發(fā)的Web應(yīng)用為例,講解如何將其容器化運(yùn)行。本文的重點(diǎn)是構(gòu)建Docker鏡像、運(yùn)行Docker容器。2017-06-06

