<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文帶你讀懂Docker容器 3

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

七、Docker實戰

這里我使用之前的軟件實踐項目來進行Docker從構建到部署一整套實驗。

Step1:Maven打包

進入項目目錄,在Terminal運行Maven命令,通過Maven構建SpringBoot Web項目,將其打成Jar包。

mvn package -Dmaven.test.skip=true

圖片

image-20220616094117236

發現項目目錄下生成了一個可執行Jar包,這里我們可以通過jar包來測試。

Step2:上傳Jar包

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

Step3 :編寫Dockerfile

~/healthySystem目錄下,使用vim Dockerfile創建一個Dockerfile文件,然后在文件編輯如下內容:

#根據Java15為基礎鏡像
FROM openjdk:11.0.15-oraclelinux7


MAINTAINER tyf


#RUN yum install redis && yum install mysql


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


#暴露出的端口
EXPOSE 8079


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

修改完畢后,保存退出。

Step4:構建Docker鏡像

~/healthySystem目錄下執行:

docker build -t healthy:1.0 .

圖片

結果顯示Successfully built ......,構建Images成功

Step5: 測試鏡像

docker run --name healthy --network host healthy:1.0 #執行新實例

圖片

image-20220617195045392

執行docker ps查看容器狀態

圖片

image-20220617195129284

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

圖片

image-20220617195245538

Step5: 上傳至阿里云倉庫

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

  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. 登陸阿里云查看遠程鏡像倉庫,顯示上傳成功。
    圖片

    image-20220617202025429

Step6:測試部署

網站部署步驟:https://github.com/TanYongF/healthyDay

基本流程:

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

八、實驗總結

本次大作業通過學習Docker基本安裝、數據管理、網絡等基礎知識,對Docker的誕生由來以及解決了多依賴項目部署復雜的問題,同時針對特定內容對Docker例如網絡模式,其基于底層隔離和資源限制的基礎——CGroup以及Namespace技術有了一定的理解。

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

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

參考資料

  1. Docker docs
  2. Docker訪問宿主機
  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百科
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開源軟件
    +關注

    關注

    0

    文章

    205

    瀏覽量

    15677
  • 編程
    +關注

    關注

    88

    文章

    3444

    瀏覽量

    92581
  • Docker
    +關注

    關注

    0

    文章

    438

    瀏覽量

    11636
收藏 人收藏

    評論

    相關推薦

    一文帶你入門Docker容器

    docker不是一個值得投入的領域,它解決的問題是Unix系統最初設計的一個疏忽。從一個不會用docker的小白,自己一步一步的摸索,中間也踩過許多坑。但任然,堅持從哪里跌倒就從哪里爬起來。不求感動自己,但求人生無悔。
    發表于 06-05 14:44 ?398次閱讀
    一文<b class='flag-5'>帶你</b>入門<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>

    如何使用 Docker容器化技術

    對于開發人員來說,Docker肯定都不陌生,今天小編帶大家重新學習一下Docker。 什么是 Docker 官話: Docker 是一種開源的容器
    的頭像 發表于 09-30 11:24 ?1.1w次閱讀

    讀懂電阻和電容的不同

    容器容量為470納法(nF)或0.47微法(uF),允許偏差±10%.在電路圖中,電阻器的歐姆符號Ω和電容量的法拉符號F??陕匀ゲ粯??!?b class='flag-5'>一讀懂電阻和電容的不同  
    發表于 11-14 10:25

    如何在Docker中創建容器

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

    理解Docker容器并暢玩docker

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

    讀懂接口模塊的組合應用有哪些?

    讀懂接口模塊的組合應用有哪些?
    發表于 05-17 07:15

    讀懂什么是NEC協議

    讀懂什么是NEC協議?
    發表于 10-15 09:22

    Docker容器管理命令()

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

    Docker容器管理命令(二)

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

    使用Docker容器編譯OK3568源代碼

    rksdkbuilder v1.1 e2fbcddfdb3c12 months ago 1.93GB 啟動Docker容器 這里寫了個shell腳本,第次使用時可以直接執行,創建
    發表于 10-19 10:36

    一文帶你讀懂Docker容器 1

    Docker** 是一個開源軟件,用于開發應用、交付應用、運行應用。 Docker允許用戶將基礎設施中的應用單獨分割出來,形成更小的顆粒(容器),從而提高交付軟件的速度。
    的頭像 發表于 02-03 15:33 ?511次閱讀
    一文<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** 是一個開源軟件,用于開發應用、交付應用、運行應用。 Docker允許用戶將基礎設施中的應用單獨分割出來,形成更小的顆粒(容器),從而提高交付軟件的速度。
    的頭像 發表于 02-03 15:33 ?477次閱讀
    一文<b class='flag-5'>帶你</b><b class='flag-5'>讀懂</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b> 2

    docker容器容器之間通信

    Docker是一種輕量級容器化技術,能夠將應用程序及其依賴項封裝在一個獨立、可移植的容器中。而容器化的應用程序通常是以分布式方式設計的,因此實現容器
    的頭像 發表于 11-23 09:36 ?590次閱讀

    docker進入容器的方法有哪些

    Docker是一種流行的容器化平臺,它能夠快速構建、交付和運行應用程序。在使用Docker時,我們經常需要進入容器進行調試、管理和運行命令等操作。本文將詳細介紹
    的頭像 發表于 11-23 09:45 ?4217次閱讀

    docker容器有幾種狀態

    Docker 是一種流行的容器化平臺,它能夠幫助開發人員將應用程序和其依賴打包成一個獨立的容器,并且能夠在不同的環境中進行部署和運行。在 Docker 中,
    的頭像 發表于 11-23 09:50 ?939次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>