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í)行,無(wú)腦回車即可
3.idea中配置docker連接
完成配置后,點(diǎn)開(kāi)docker連接,可以看到如下內(nèi)容
簡(jiǎn)單介紹一下,可以通過(guò)鏡像創(chuàng)建容器。
鏡像相當(dāng)于一個(gè)配方,容器相當(dāng)于菜肴,通過(guò)一個(gè)秘方可以創(chuàng)建無(wú)數(shù)個(gè)菜肴,同理:通過(guò)指定鏡像可以創(chuàng)建無(wú)數(shù)個(gè)容器。
每個(gè)容器相當(dāng)于一個(gè)小型linux機(jī)器,它只包含最基本的功能(內(nèi)核級(jí)功能),用一句話形容就是:麻雀雖小五臟俱全。
4.將我們的工程打成一個(gè)jar包
1.首先,修改pom文件中的skip標(biāo)簽的值為false
否則他會(huì)跳過(guò)打包我們的啟動(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文件通過(guò)ftp工具上傳到虛擬機(jī)
3. 通過(guò)命令打包鏡像
命令格式:
docker build -t 鏡像名:版本號(hào) Dockerfile所在的地址
執(zhí)行命令報(bào)錯(cuò),這是因?yàn)楫?dāng)我們把jar包移到虛擬機(jī)后,它所在的位置就不是target/TestDockerDB01-0.0.1-SNAPSHOT.jar了
這時(shí)候我們通過(guò)vi Dockerfile去修改文件
再一次檢查一下jar包和Dockerfile文件的位置,重新執(zhí)行命令
創(chuàng)建鏡像成功
idea中也能看到我們剛剛創(chuàng)建的鏡像
通過(guò)idea打包
回到Dockerfile文件,進(jìn)行配置
把Dockerfile跑起來(lái),這里我們選擇第一個(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)文章
Docker安裝logstash的詳細(xì)過(guò)程
這篇文章主要介紹了Docker安裝logstash的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Docker自定義網(wǎng)絡(luò)詳細(xì)介紹
大家好,本篇文章主要講的是Docker自定義網(wǎng)絡(luò)詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12Docker容器互相連接三種實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Docker容器互連三種實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05docker安裝es與kibana的過(guò)程及遇到問(wèn)題
這篇文章主要介紹了docker安裝es與kibana的過(guò)程及遇到問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-02-02使用Docker部署Dashdot服務(wù)器儀表盤的步驟
Dashdot是一款簡(jiǎn)單、實(shí)用的開(kāi)源服務(wù)器儀表盤,設(shè)計(jì)時(shí)考慮到了玻璃形態(tài),它旨在用于較小的?VPS?和私人服務(wù)器,這篇文章主要介紹了使用Docker部署Dashdot服務(wù)器儀表盤,需要的朋友可以參考下2022-12-12