Docker 自定義鏡像的創(chuàng)建及運行——Docker系列文章(二)

文 | 平哥 日期 | 20201112

方式一:使用DockerFile直接創(chuàng)建自定義鏡像

基本步驟:

  • 編寫Dockerfile文件
  • docker build 生成鏡像
  • docker run 創(chuàng)建容器運行

Step 1 將項目打成jar包并上傳

在IDEA中創(chuàng)建SpringBoot項目矫夯,里面只有一個叫做”/”的控制器方法孔庭,訪問后頁面輸出:“Success!”,用Maven進行打包成demojar.jar吸占。
提示:在pom文件中加入如下打包配置:

<build>
    <finalName>demojar</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.gcp.TestDockerBuildApp</mainClass>
                <layout>ZIP</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <!--把依賴的包都打包到生成的Jar包中-->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

將打包好的文件上傳至服務器的 /usr/loal/docker 目錄中。

Step 2 下載JDK的Docker鏡像

在服務器上下載JDK的docker鏡像募强,我這用的是openjdk:8版本

# docker pull openjdk:8

可以利用以下命令進行確認灼舍,本地是否有jdk鏡像:

# docker images

Step 3 創(chuàng)建構(gòu)建文件

新建一個Docke鏡像構(gòu)建文件:builFile,提示:要構(gòu)建到鏡像中的jar文件需要和buildFile處于同一個目錄一屋。

# vim /usr/local/docker/buildFile

在文件中輸入如下信息:

FROM openjdk:8
VOLUME /var/mydatas
ADD demojar.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 8080

參數(shù)說明:
// 指定基礎鏡像窘疮,這個需要根據(jù)自己配置的倉庫上的版本寫
FROM openjdk:latest
// 持久化目錄,容器數(shù)據(jù)卷冀墨,用于數(shù)據(jù)保存和持久化工作
VOLUME /var/mydatas
// 指定源包闸衫,前者是你的jar包,將宿主機目錄下的文件拷貝進鏡像且ADD命令會自動處理URL和解壓tar壓縮包
ADD demojar.jar app.jar
// 指定容器啟動時執(zhí)行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
// 對外端口
EXPOSE 8080

Step 4 創(chuàng)建Docker鏡像

使用如下命令進行Docker鏡像創(chuàng)建:

# docker build -f /usr/local/buildFile -t demo:1.0 .

p.s. 命令最后有個點诽嘉;
-t意思 --tag list: Name and optionally a tag in the 'name:tag' format

Step 5 啟動容器

使用如下命令進行容器創(chuàng)建并啟動:

# docker run --name demoJarRun -p 8080:8080 -d demo:1.0

啟動后蔚出,可通過日志查詢命令查看是否已啟動完畢且成功:

# docker logs -f demoJarRun

方式二:使用IDEA創(chuàng)建自定義鏡像

Step 1 修改Docker服務配置

修改如下文件:

# vim /usr/lib/systemd/system/docker.service

在ExecStart的末尾加上如下配置:

-H unix:///var/run/docker.sock -H 0.0.0.0:2375

如圖:


image

重新加載配置,重啟docker服務

# systemctl daemon-reload 
# systemctl restart docker

Step 2 新增項目POM配置

在原有打包插件的基礎上加入如下插件信息:

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.2.2</version>
    <configuration>
        <imageName>demojar:2.0</imageName>
        <baseImage>openjdk:8</baseImage>
        <dockerHost>http://81.70.38.8:2375</dockerHost>
        <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

Step 3 新增IDEA運行配置

進入“Run/Debug Configurations”界面:


image

點擊左上角 “+” 號虫腋,新增Maven項目運行配置:


image

在Command line 輸入運行的命令:
clean package docker:build

單擊OK保存骄酗。

Step 4 運行并驗證是否創(chuàng)建成功

選擇上一步配置的運行項,單擊運行:


image

登錄遠程服務器查看是否已創(chuàng)建鏡像:


image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悦冀,一起剝皮案震驚了整個濱河市趋翻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雏门,老刑警劉巖嘿歌,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茁影,居然都是意外死亡宙帝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門募闲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來步脓,“玉大人,你說我怎么就攤上這事⊙セ迹” “怎么了仍侥?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸳君。 經(jīng)常有香客問我农渊,道長,這世上最難降的妖魔是什么或颊? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任砸紊,我火速辦了婚禮,結(jié)果婚禮上囱挑,老公的妹妹穿的比我還像新娘醉顽。我一直安慰自己,他們只是感情好平挑,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布游添。 她就那樣靜靜地躺著,像睡著了一般通熄。 火紅的嫁衣襯著肌膚如雪唆涝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天棠隐,我揣著相機與錄音石抡,去河邊找鬼。 笑死助泽,一個胖子當著我的面吹牛啰扛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嗡贺,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼隐解,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诫睬?” 一聲冷哼從身側(cè)響起煞茫,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎摄凡,沒想到半個月后续徽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡亲澡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年钦扭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片床绪。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡客情,死狀恐怖其弊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膀斋,我是刑警寧澤梭伐,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站仰担,受9級特大地震影響糊识,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摔蓝,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一技掏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧项鬼,春花似錦、人聲如沸劲阎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悯仙。三九已至龄毡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锡垄,已是汗流浹背沦零。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留货岭,地道東北人路操。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像千贯,于是被迫代替她去往敵國和親屯仗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348