色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

什么是Docker容器

汽車電子技術 ? 來源:碼農與軟件時代 ? 作者:碼農與軟件時代 ? 2023-02-20 16:16 ? 次閱讀

1.軟件開發面臨的那些****問題

程序員根據需求和架構設計翻譯出業務邏輯之后,為保證正常轉測,打包代碼并編寫轉測說明書。

選定合適的服務器和操作系統,并通過SSH連接服務器,進行手動升級:安裝Web容器或數據庫、部署軟件APP以及配置環境。開發內部測試,如果發現新問題需要進行修復,則再次連接服務器,升級相應的版本和配置環境的變更點。如未發現問題,則通過后轉交測試人員。

測試重復開發類似的部署動作,測試通過,版本發布;運維人員拿到版本發布包后,重復測試的部署動作。

圖片

這種重復的工作就像雙11雜亂的快遞不斷分揀的過程:

圖片

如果有集裝箱的話,只要開發集中裝箱一次,測試、運維就可以直接用了。

圖片

2.Docker是什么?

要將安裝好的開發環境打成包,能夠切換到測試環境、生產環境,實現“一次打包,到處運行”的目標,就需要實現:

(1)將開發環境原汁原味地打包。

(2)讓應用程序認為自己擁有“整個天下”。

針對第一個實現目標:將開發環境原汁原味地打包。

回顧開發環境的安裝過程:先安裝操作系統、再安裝JDK環境、再裝Web Server、再部署應用程序。整個安裝過程是在操作系統上一層一層安裝起來,到最后整個環境是各層安裝之后的累加結果。

《初識Docker鏡像》一文中介紹了Linux操作系統、UnionFS聯合文件系統,UnionFS可實現將多個文件系統的目錄或者文件合并成一個“統一的文件系統”,掛載到某個目錄(掛載點)下。

針對第二個實現目標:讓應用程序認為自己擁有“整個天下”。

進一步解釋,讓應用程序認為自己擁有獨立的計算、存儲、網絡。這里需要使用命名空間NameSpace技術。Linux命名空間是Linux內核中實現的虛擬化機制,可以將系統資源劃分成多個獨立的空間,每個空間中的進程邏輯上互相隔離,彼此不影響。

如何讓應用程序認為擁有整個文件系統?使用chroot技術。chroot 是一種修改當前進程及其子進程的可見根目錄的操作。修改后,進程將不能訪問該根目錄樹以外的任何文件和命令,這種修改后的環境叫作chroot jail(直譯為chroot監獄)。

如何保證應用程序使用有限的資源,從而不擠爆整個宿主機?使用cgroup技術。

cgroup也是Linux內核實現的,可以對進程的CPU 時間、系統內存、網絡帶寬等資源進行分配。

2008年,Linux Container(簡稱LXC),整合了cgroups和Namespace技術,并合入到Linux內核v2.6.27中。

2013年,Docker公司基于Linux Container開發,并借助于UnionFS,實現了Docker容器技術。

3.Docker是如何運轉的?

有了上面可用的技術,還需要做一些約定:

(1)將運行環境所對應的文件系統打成的包,稱為鏡像(Image);

(2)將應用程序運行起來的進程,稱為容器(Container);

(3)將存放鏡像的地方,稱為Repository(倉庫)。

有了這些約定,就可以構建一個容器的管理程序,用來:

(1)將環境打包成鏡像;

(2)上傳、下載鏡像到倉庫;

(3)運行容器,容器也可以提交為鏡像;

圖片

容器的管理程序采用C/S架構,服務端稱為docker daemon,后端關聯倉庫。客戶端是命令行工具。

圖片

4. Docker Daemon是如何演進****的?

上文中展示的Docker Daemon服務端,從Docker v1.11版本開始,便進行拆分重構,如圖所示。

圖片

包含如下組件:

(1)runc: 負責容器的創建、刪除等生命周期管理。后面詳細介紹。

(2)Containerd-shim: 是一個守護進程,與Containerd一一對應,并向其提供管理容器生命周期的API,也可以向Containerd 報告容器的退出狀態。向下,在runc運行容器之后并退出,containerd-shim作為容器的父進程。這樣可以重啟Containerd,而不會對運行中的容器產生影響。

(3)Containerd:

containerd是一個守護進程,負責監聽傳入的請求以進行容器的生命周期管理(啟動、停止或報告容器的狀態),同時,也負責鏡像的管理(上傳、下載到倉庫,本地保存鏡像等功能),以及跨容器的網絡管理。

(4)dockerd: 也就是docker daemon,是一個守護進程。提供docker pull、docker push、docker run等命令接口,并將接口轉換為containerd API以調用containerd。同時,提供容器編排功能。

下面詳細分析runC和containerd兩個組件。

首先來看runC。 Docker的底層技術是Namespace和Cgroup,LXC組合了這兩種技術,為運行應用程序提供了“隔離”的環境,這些都已經合入到Linux內核。

最初Docker基于LXC進行開發,因存在強綁定問題,而重新開發了libcontainer。

后來因Docker成為事實標準,且不開放,影響到生態建設(影響了Google、微軟的發展)。在Linux基金會的參與下,Docker發起OCI組織,起草了OCI標準:

(1)容器運行時標準(runtime spec):定義了如何根據相應的配置構建容器運行時,也就是指定了容器的配置、執行環境和生命周期。

圖片

(2)容器鏡像標準(image spec):定義了容器運行時所使用的鏡像打包規范,也就是指定了文件系統標準包bundle的格式。

總的來說,OCI標準指定了容器運行所需要的bundle和配置信息

Docker公司根據OCI容器運行時標準,將libcontainer進行了二次封裝形成新的項目,改為RunC,作為參考實現捐給社區。需要說明的是RunC項目實現了從定義的容器標準包運行容器,而沒有實現下載鏡像并將解析成標準包。

再來看containerd。

2016年12月,Docker公司將其拆分為獨立組件(守護進程),并于2017年3月捐贈給CNCF。

其架構如下圖所示。

圖片

containerd分為三個大塊:Storage、Metadata和Runtimes。其中,Storage 負責鏡像的存儲、管理和拉取;Metadata用來管理容器及鏡像的元數據,Runtimes用來對接runc。

containerd捐給社區后,形成一個龐大的生態:

圖片

參考資料

1. 容器運行時規范:https://github.com/opencontainers/runtime-spec2. 容器鏡像規范:https://github.com/opencontainers/image-spec3. https://containerd.io/4.https://github.com/containerd/containerd/blob/main/docs/getting-started.md5.https://mp.weixin.qq.com/s/yIuGm92sshYOZAcIpmu9Ag6.https://www.zhangjiee.com/blog/2021/container-runtime.html
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9239

    瀏覽量

    85689
  • 操作系統
    +關注

    關注

    37

    文章

    6856

    瀏覽量

    123462
  • SSH
    SSH
    +關注

    關注

    0

    文章

    189

    瀏覽量

    16362
收藏 人收藏

    評論

    相關推薦

    RK3568-Docker容器部署方法說明

    RK3568-Docker容器部署方法說明
    的頭像 發表于 01-22 10:12 ?1441次閱讀
    RK3568-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法說明

    TLT507-Docker容器部署方法說明

    TLT507-Docker容器部署方法說明
    的頭像 發表于 01-26 09:49 ?478次閱讀
    TLT507-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法說明

    請問docker容器如何添加自定義hosts?

    docker容器添加自定義hosts的方案有哪些?docker容器添加自定義hosts的錯誤示例
    發表于 11-05 06:20

    請問docker容器如何查看日志?

    docker容器如何查看日志
    發表于 11-19 07:29

    怎樣在RK3399-firefly上安裝Docker容器

    為什么在RK3399-firefly上安裝Docker容器會出現錯誤呢?怎樣在RK3399-firefly上安裝Docker容器呢?
    發表于 03-07 13:18

    Docker容器管理命令(一)

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

    Docker容器管理命令(二)

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

    學習管理 docker 容器的一些命令

    在本教程中,我們會學習管理 docker 容器的一些命令。
    的頭像 發表于 01-22 11:56 ?4321次閱讀

    集成Docker容器的OpenStack云平臺性能研究

    針對OpenStack云平臺虛擬機未能較好利用宿主物理機資源的問題,結合基于組件工作的OpenStack在云平臺管理中的高效性和Docker容器虛擬化的快速部署優勢,搭建基于Docker容器
    發表于 01-26 15:32 ?0次下載
    集成<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>的OpenStack云平臺性能研究

    學習 Docker 容器的 8 個命令分享

    利用這 8 個命令可以學習 Docker 容器的基本管理方式。這是一個為 Docker 初學者準備的,帶有示范命令輸出的指南。
    發表于 06-22 12:03 ?1380次閱讀
    學習 <b class='flag-5'>Docker</b> <b class='flag-5'>容器</b>的 8 個命令分享

    AM5708平臺移植ubuntu系統和docker容器

    AM5708平臺移植ubuntu系統和docker容器
    發表于 11-01 08:26 ?2次下載
    AM5708平臺移植ubuntu系統和<b class='flag-5'>docker</b><b class='flag-5'>容器</b>

    NAS下可搭建的docker容器整理

    又到了整理匯總的時間了,本期依然是針對NAS下可搭建的一些docker容器的匯總,涉及可能會有介紹過的容器!!!也歡迎留言你發現的一些有趣的或者有用的容器推薦。
    的頭像 發表于 02-03 16:26 ?4945次閱讀
    NAS下可搭建的<b class='flag-5'>docker</b><b class='flag-5'>容器</b>整理

    如何在Docker容器中運行Nginx

    在本教程中,您將學習如何將 Nginx 作為 Docker 容器運行,并將其公開給您的本地網絡。此外,您將學習如何創建 Docker 數據卷以在容器和主機文件系統之間共享信息。
    的頭像 發表于 02-17 09:30 ?1955次閱讀

    docker容器刪除后數據還在嗎

    Docker作為一個容器化平臺,提供了輕量級的虛擬化解決方案,能夠方便地創建、部署和管理應用程序。然而,對于Docker容器的數據持久性是一個令人關注的問題。當我們刪除一個
    的頭像 發表于 11-23 09:32 ?1888次閱讀

    docker容器容器之間通信

    Docker是一種輕量級容器化技術,能夠將應用程序及其依賴項封裝在一個獨立、可移植的容器中。而容器化的應用程序通常是以分布式方式設計的,因此實現容器
    的頭像 發表于 11-23 09:36 ?1582次閱讀
    主站蜘蛛池模板: 亚洲AV无码久久流水呻蜜桃久色| 超碰在线线公开免费视频| 狠狠色综合久久丁香婷婷| 一个人的视频全免费在线观看www 一个人的免费完整在线观看HD | 日韩亚洲欧美中文高清| 国产乱色伦影片在线观看| 一级做a爰片久久毛片苍井优| 欧美阿v在线天堂| 国产精品成人网| 在线观看亚洲 日韩 国产| 青草国产超碰人人添人人碱| 国产精品久久久久精品A片软件| 夜夜精品视频一区二区| 秋霞伦理机在线看片| 黄色免费在线网址| 白丝女仆被强扒内裤| 亚洲熟妇AV乱码在线观看| 強姧伦久久久久久久久| 黑人巨茎大战白人女40CMO| lesbabes性欧美| 野花韩国高清完整版在线| 日本高清免费一本视频在线观看| 国语自产拍大学生在线观看| GAY东北澡堂激情2022| 亚洲一区免费在线观看| 日本综艺大尺度无删减版在线| 久久re这里视频精品8| 国产成人a视频在线观看| 91视频3p| 野花日本高清在线观看免费吗| 日本特交大片免费观看| 久久亚洲这里只有精品18| 国产美女裸身网站免费观看视频| chinese东北老年tv视频| 渔夫床满艳史bd高清在线直播| 熟女理发厅| 千禧金瓶梅快播| 蜜桃久久久亚洲精品成人| 黑丝制服影院| 国产成人免费网站在线观看 | 国产日韩高清一区二区三区|