0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文帶你讀懂Docker容器 3

jf_78858299 ? 來源:碳峰博客 ? 作者:Tanyongfeng ? 2023-02-03 15:34 ? 次閱讀

七、Docker實戰(zhàn)

這里我使用之前的軟件實踐項目來進(jìn)行Docker從構(gòu)建到部署一整套實驗。

Step1:Maven打包

進(jìn)入項目目錄,在Terminal運(yùn)行Maven命令,通過Maven構(gòu)建SpringBoot Web項目,將其打成Jar包。

mvn package -Dmaven.test.skip=true

圖片

image-20220616094117236

發(fā)現(xiàn)項目目錄下生成了一個可執(zhí)行Jar包,這里我們可以通過jar包來測試。

Step2:上傳Jar包

將Jar包通過FTP工具上傳到服務(wù)器~/healthySystem目錄下

Step3 :編寫Dockerfile

~/healthySystem目錄下,使用vim Dockerfile創(chuàng)建一個Dockerfile文件,然后在文件編輯如下內(nèi)容:

#根據(jù)Java15為基礎(chǔ)鏡像
FROM openjdk:11.0.15-oraclelinux7


MAINTAINER tyf


#RUN yum install redis && yum install mysql


#將當(dāng)前目錄下jar包復(fù)制到Docker鏡像中
#將需要額外加載的配置文件加入鏡像
COPY *.jar /app.jar
COPY *.yml /application.yml


#暴露出的端口
EXPOSE 8079


ENTRYPOINT ["java", "-jar", "/app.jar"                                                                                                                                              ~

修改完畢后,保存退出。

Step4:構(gòu)建Docker鏡像

~/healthySystem目錄下執(zhí)行:

docker build -t healthy:1.0 .

圖片

結(jié)果顯示Successfully built ......,構(gòu)建Images成功

Step5: 測試鏡像

docker run --name healthy --network host healthy:1.0 #執(zhí)行新實例

圖片

image-20220617195045392

執(zhí)行docker ps查看容器狀態(tài)

圖片

image-20220617195129284

打開服務(wù)器防火墻,訪問http://81.68.239.206:8093/welcome.htm,正常啟動。

圖片

image-20220617195245538

Step5: 上傳至阿里云倉庫

這里使用我們上述使用的阿里云鏡像倉庫和中心倉庫,在阿里云鏡像倉庫創(chuàng)建完成相應(yīng)的遠(yuǎn)程倉庫后,按照官方操作步驟來完成鏡像推送。

  1. 登陸至阿里云 Docker Registry

    docker login --username=譚永鋒nb registry.cn-shanghai.aliyuncs.com
    

    圖片

    image-20220617201312628

  2. 更改鏡像Tag

    #docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:[鏡像版本號]
    docker tag 9e78dbdd6dd8 registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:1.0
    

    圖片

    image-20220617201707730

  3. 上傳鏡像

    #docker push registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:[鏡像版本號]
    docker push registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:1.0
    

圖片

image-20220617201954652

  1. 登陸阿里云查看遠(yuǎn)程鏡像倉庫,顯示上傳成功。
    圖片

    image-20220617202025429

Step6:測試部署

網(wǎng)站部署步驟:https://github.com/TanYongF/healthyDay

基本流程:

  • 安裝Mysql、Redis
  • 配置項目配置文件
  • 執(zhí)行下面命令
  • 訪問 http://ip:8093
docker run --name healthy --network host registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:1.0

八、實驗總結(jié)

本次大作業(yè)通過學(xué)習(xí)Docker基本安裝、數(shù)據(jù)管理、網(wǎng)絡(luò)等基礎(chǔ)知識,對Docker的誕生由來以及解決了多依賴項目部署復(fù)雜的問題,同時針對特定內(nèi)容對Docker例如網(wǎng)絡(luò)模式,其基于底層隔離和資源限制的基礎(chǔ)——CGroup以及Namespace技術(shù)有了一定的理解。

同時又對之前的軟件實習(xí)項目的部署引入Docker進(jìn)行改造,通過編寫Dockerfile以及Docker-compose文件構(gòu)建出了項目對應(yīng)的鏡像并且上既然到了云端,從實踐方面體會到了Docker對實際項目運(yùn)維部署方面帶來的巨大便捷。

由于自身的學(xué)習(xí)方向是Java后端方向,對于現(xiàn)在接觸比較多的微服務(wù)、集群來講,Docker等云原生工具大大降低配置部署難度,同時也讓我對DevOps開發(fā)流程的理解逐漸加深,也促使我將將傳統(tǒng)的開發(fā)思想逐漸轉(zhuǎn)變成容器化思想。但是鑒于時間緊迫,對Docker底層原理的細(xì)節(jié)了解還不是很充分,同時對于業(yè)界比較流行的Kubernetes(k8s)等Docker容器編排工具還沒有具體的體驗學(xué)習(xí),但是學(xué)無止境,未來我也會繼續(xù)加深對其中云原生技術(shù)的深入學(xué)習(xí),努力將自己打造成為新一代DevOps工程師。

參考資料

  1. Docker docs
  2. Docker訪問宿主機(jī)
  3. Docker基本指令使用.菜鳥教程
  4. Docker入門.Meituan Tech
  5. https://www.xmind.net/m/RHSz/
  6. https://yeasy.gitbook.io/docker_practice/advanced_network
  7. iptables詳解
  8. Docker.Wiki百科
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開源軟件
    +關(guān)注

    關(guān)注

    0

    文章

    209

    瀏覽量

    15872
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3565

    瀏覽量

    93535
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    453

    瀏覽量

    11792
收藏 人收藏

    評論

    相關(guān)推薦

    帶你搞懂Docker容器的核心基石Cgroups

    可以限制、記錄任務(wù)組所使用的物理組員(比如 CPU、Memory、IO等),為容器實現(xiàn)虛擬化提供了基本保證,是構(gòu)建 Docker些列虛擬化管理工具的基石。今天我們就來詳細(xì)介紹
    發(fā)表于 11-24 09:54 ?578次閱讀

    帶你入門Docker容器

    docker不是個值得投入的領(lǐng)域,它解決的問題是Unix系統(tǒng)最初設(shè)計的個疏忽。從個不會用docker的小白,自己
    發(fā)表于 06-05 14:44 ?518次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b>入門<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>

    如何使用 Docker容器化技術(shù)

    對于開發(fā)人員來說,Docker肯定都不陌生,今天小編帶大家重新學(xué)習(xí)Docker。 什么是 Docker 官話: Docker
    的頭像 發(fā)表于 09-30 11:24 ?1.6w次閱讀

    ARM平臺實現(xiàn)Docker容器技術(shù)

    本帖最后由 Tronlong創(chuàng)龍科技 于 2024-7-19 16:50 編輯 什么是Docker? (1)Docker的架構(gòu)Docker個開源的應(yīng)用
    發(fā)表于 07-17 11:05

    如何在Docker中創(chuàng)建容器

    Docker個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建個輕量級的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測試通過的容器可以批量地在
    發(fā)表于 01-03 15:58

    理解Docker容器并暢玩docker

    !命令行!玩docker,簡單幾句命令就夠了。Docker容器響應(yīng)迅速,執(zhí)行迅速,回憶下VM啟動要多久?最佳的試驗場所,想怎么玩怎么玩,rm -rf /* 根本不是大問題。主機(jī)上刪掉
    發(fā)表于 11-05 09:54

    讀懂什么是NEC協(xié)議

    讀懂什么是NEC協(xié)議?
    發(fā)表于 10-15 09:22

    Docker容器管理命令()

    1、Docker容器管理命令的使用方法查看當(dāng)前主機(jī)本地docker鏡像:啟動容器必須依賴鏡像,所以要獲取到鏡像的唯標(biāo)識
    發(fā)表于 04-20 17:55

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量刪除docker 容器docker cp命令docker
    發(fā)表于 04-21 11:31

    帶你讀懂耦合與退耦,上拉與下拉資料下載

    電子發(fā)燒友網(wǎng)為你提供帶你讀懂耦合與退耦,上拉與下拉資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫
    發(fā)表于 04-21 08:50 ?23次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>讀懂</b>耦合與退耦,上拉與下拉資料下載

    帶你讀懂Docker容器 1

    Docker** 是個開源軟件,用于開發(fā)應(yīng)用、交付應(yīng)用、運(yùn)行應(yīng)用。 Docker允許用戶將基礎(chǔ)設(shè)施中的應(yīng)用單獨(dú)分割出來,形成更小的顆粒(容器),從而提高交付軟件的速度。
    的頭像 發(fā)表于 02-03 15:33 ?737次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>讀懂</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b> 1

    帶你讀懂Docker容器 2

    Docker** 是個開源軟件,用于開發(fā)應(yīng)用、交付應(yīng)用、運(yùn)行應(yīng)用。 Docker允許用戶將基礎(chǔ)設(shè)施中的應(yīng)用單獨(dú)分割出來,形成更小的顆粒(容器),從而提高交付軟件的速度。
    的頭像 發(fā)表于 02-03 15:33 ?653次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>讀懂</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b> 2

    讀懂,什么是BLE?

    讀懂,什么是BLE?
    的頭像 發(fā)表于 11-27 17:11 ?2114次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>,什么是BLE?

    docker容器容器之間通信

    Docker種輕量級容器化技術(shù),能夠?qū)?yīng)用程序及其依賴項封裝在個獨(dú)立、可移植的容器中。而容器
    的頭像 發(fā)表于 11-23 09:36 ?1425次閱讀

    docker進(jìn)入容器的方法有哪些

    Docker種流行的容器化平臺,它能夠快速構(gòu)建、交付和運(yùn)行應(yīng)用程序。在使用Docker時,我們經(jīng)常需要進(jìn)入容器進(jìn)行調(diào)試、管理和運(yùn)行命令等
    的頭像 發(fā)表于 11-23 09:45 ?1w次閱讀