国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Docker系列—簡介概述

開發 前端
Docker 是一個用于開發、傳送和運行應用程序的開放平臺。Docker 使您能夠將應用程序與基礎設施分開,以便您可以快速交付軟件。

一、起源

Docker 最初是 dotCloud 公司創始人 Solomon Hykes 在法國期間發起的一個公司內部項目,它是基于 dotCloud 公司多年云服務技術的一次革新,并于 2013 年 3 月以 Apache 2.0 授權協議開源,主要項目代碼在 GitHub 上進行維護。Docker 項目后來還加入了 Linux 基金會,并成立推動 開放容器聯盟(OCI)。

Docker 自開源后受到廣泛的關注和討論,至今其 GitHub 項目 已經超過 5 萬 7 千個星標和一萬多個 fork。甚至由于 Docker 項目的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。Docker 最初是在 Ubuntu 12.04 上開發實現的;Red Hat 則從 RHEL 6.5 開始對 Docker 進行支持;Google 也在其 PaaS 產品中廣泛應用 Docker。

Docker 使用 Google 公司推出的 Go 語言 進行開發實現,基于 Linux 內核的 cgroup,namespace,以及 OverlayFS 類的 Union FS 等技術,對進程進行封裝隔離,屬于 操作系統層面的虛擬化技術。由于隔離的進程獨立于宿主和其它的隔離的進程,因此也稱其為容器。最初實現是基于 LXC,從 0.7 版本以后開始去除 LXC,轉而使用自行開發的 libcontainer,從 1.11 版本開始,則進一步演進為使用 runC 和 containerd。

  • runc 是一個 Linux 命令行工具,用于根據 OCI容器運行時規范 創建和運行容器。
  • containerd 是一個守護程序,它管理容器生命周期,提供了在一個節點上執行容器和管理鏡像的最小功能集。

一款開源軟件能否在商業上成功,很大程度上依賴三件事 - 成功的 user case(用例), 活躍的社區和一個好故事。 dotCloud 之家的 PaaS 產品建立在docker之上,長期維護且有大量的用戶,社區也十分活躍,接下來我們看看docker的故事。

  • 環境管理復雜 - 從各種OS到各種中間件到各種app, 一款產品能夠成功作為開發者需要關心的東西太多,且難于管理,這個問題幾乎在所有現代IT相關行業都需要面對。
  • 云計算時代的到來 - AWS的成功, 引導開發者將應用轉移到 cloud 上, 解決了硬件管理的問題,然而中間件相關的問題依然存在 (所以openstack HEAT和 AWS cloudformation 都著力解決這個問題)。開發者思路變化提供了可能性。
  • 虛擬化手段的變化 - cloud 時代采用標配硬件來降低成本,采用虛擬化手段來滿足用戶按需使用的需求以及保證可用性和隔離性。然而無論是KVM還是Xen在 docker 看來,都在浪費資源,因為用戶需要的是高效運行環境而非OS, GuestOS既浪費資源又難于管理, 更加輕量級的LXC更加靈活和快速
  • LXC的移動性 - LXC在 linux 2.6 的 kernel 里就已經存在了,但是其設計之初并非為云計算考慮的,缺少標準化的描述手段和容器的可遷移性,決定其構建出的環境難于遷移和標準化管理(相對于KVM之類image和snapshot的概念)。docker 就在這個問題上做出實質性的革新。這是docker最獨特的地方。

面對上述幾個問題,docker設想是交付運行環境如同海運,OS如同一個貨輪,每一個在OS基礎上的軟件都如同一個集裝箱,用戶可以通過標準化手段自由組裝運行環境,同時集裝箱的內容可以由用戶自定義,也可以由專業人員制造。這樣,交付一個軟件,就是一系列標準化組件的集合的交付,如同樂高積木,用戶只需要選擇合適的積木組合,并且在最頂端署上自己的名字(最后一個標準化組件是用戶的app)。這也就是基于docker的PaaS產品的原型。

二、概述

Docker 是一個用于開發、傳送和運行應用程序的開放平臺。Docker 使您能夠將應用程序與基礎設施分開,以便您可以快速交付軟件。使用 Docker,您可以像管理應用程序一樣管理基礎設施。通過利用 Docker 的快速交付、測試和部署代碼的方法,您可以顯著減少編寫代碼和在生產中運行代碼之間的延遲。

Docker 提供了在稱為容器的松散隔離環境中打包和運行應用程序的能力。隔離和安全性允許您在給定主機上同時運行多個容器。容器是輕量級的,包含運行應用程序所需的一切,因此您無需依賴主機上當前安裝的內容。您可以在工作時輕松共享容器,并確保與您共享的每個人都獲得以相同方式工作的相同容器。

Docker 提供工具和平臺來管理容器的生命周期:

  • 使用容器開發您的應用程序及其支持組件。
  • 容器成為分發和測試應用程序的單元。
  • 準備就緒后,將應用程序作為容器或編排服務部署到生產環境中。無論您的生產環境是本地數據中心、云提供商還是兩者的混合,這都是一樣的。

一個完整的Docker有以下幾個部分組成:

  • Docker Client客戶端
  • Docker Daemon守護進程
  • Docker Image鏡像
  • Docker Container容器

三、架構

Docker 包括三個基本概念:

  • 鏡像(Image):Docker 鏡像(Image),就相當于是一個 root 文件系統。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 文件系統。
  • 容器(Container):鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。
  • 倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。

Docker 使用客戶端-服務器架構。Docker客戶端與 Docker守護進程對話,后者負責構建、運行和分發 Docker 容器的繁重工作。Docker 客戶端和守護程序可以 在同一系統上運行,或者您可以將 Docker 客戶端連接到遠程 Docker 守護程序。Docker 客戶端和守護進程使用 REST API、UNIX 套接字或網絡接口進行通信。另一個 Docker 客戶端是 Docker Compose,它允許您使用由一組容器組成的應用程序。

四、底層實現

Docker 底層的核心技術包括 Linux 上的命名空間(Namespaces)、控制組(Control groups)、Union 文件系統(Union file systems)和容器格式(Container format)。

我們知道,傳統的虛擬機通過在宿主主機中運行 hypervisor 來模擬一整套完整的硬件環境提供給虛擬機的操作系統。虛擬機系統看到的環境是可限制的,也是彼此隔離的。 這種直接的做法實現了對資源最完整的封裝,但很多時候往往意味著系統資源的浪費。 例如,以宿主機和虛擬機系統都為 Linux 系統為例,虛擬機中運行的應用其實可以利用宿主機系統中的運行環境。

我們知道,在操作系統中,包括內核、文件系統、網絡、PID、UID、IPC、內存、硬盤、CPU 等等,所有的資源都是應用進程直接共享的。 要想實現虛擬化,除了要實現對內存、CPU、網絡IO、硬盤IO、存儲空間等的限制外,還要實現文件系統、網絡、PID、UID、IPC等等的相互隔離。 前者相對容易實現一些,后者則需要宿主機系統的深入支持。

隨著 Linux 系統對于命名空間功能的完善實現,程序員已經可以實現上面的所有需求,讓某些進程在彼此隔離的命名空間中運行。大家雖然都共用一個內核和某些運行時環境(例如一些系統命令和系統庫),但是彼此卻看不到,都以為系統中只有自己的存在。這種機制就是容器(Container),利用命名空間來做權限的隔離控制,利用 cgroups 來做資源分配。

五、Docker 和傳統虛擬化方式的比較

Docker 項目的目標是實現輕量級的操作系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。在 LXC 的基礎上 Docker 進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。下面的圖片比較了 Docker 和傳統虛擬化方式的不同之處,可見容器是在操作系統層面上實現虛擬化,直接復用本地主機的操作系統,而傳統方式則是在硬件層面實現。

Docker 在容器的基礎上,進行了進一步的封裝,從文件系統、網絡互聯到進程隔離等等,極大地簡化了容器的創建和維護。使得 Docker 技術比虛擬機技術更為輕便、快捷。

傳統虛擬化

Docker容器化

六、為什么要用 Docker

Docker 跟傳統的虛擬化方式相比具有眾多的優勢。

  • 更高效的利用系統資源

由于容器不需要進行硬件虛擬以及運行完整操作系統等額外開銷,Docker 對系統資源的利用率更高。無論是應用執行速度、內存損耗或者文件存儲速度,都要比傳統虛擬機技術更高效。因此,相比虛擬機技術,一個相同配置的主機,往往可以運行更多數量的應用。

  • 更快速的啟動時間

傳統的虛擬機技術啟動應用服務往往需要數分鐘,而 Docker 容器應用,由于直接運行于宿主內核,無需啟動完整的操作系統,因此可以做到秒級、甚至毫秒級的啟動時間。大大的節約了開發、測試、部署的時間。

  • 一致的運行環境

開發過程中一個常見的問題是環境一致性問題。由于開發環境、測試環境、生產環境不一致,導致有些 bug 并未在開發過程中被發現。而 Docker 的鏡像提供了除內核外完整的運行時環境,確保了應用運行環境一致性,從而不會再出現 「這段代碼在我機器上沒問題啊」 這類問題。

  • 持續交付和部署

對開發和運維(DevOps)人員來說,最希望的就是一次創建或配置,可以在任意地方正常運行。

使用 Docker 可以通過定制應用鏡像來實現持續集成、持續交付、部署。開發人員可以通過 Dockerfile 來進行鏡像構建,并結合 持續集成(Continuous Integration) 系統進行集成測試,而運維人員則可以直接在生產環境中快速部署該鏡像,甚至結合 持續部署(Continuous Delivery/Deployment) 系統進行自動部署。

而且使用 Dockerfile 使鏡像構建透明化,不僅僅開發團隊可以理解應用運行環境,也方便運維團隊理解應用運行所需條件,幫助更好的生產環境中部署該鏡像。

  • 更輕松的遷移

由于 Docker 確保了執行環境的一致性,使得應用的遷移更加容易。Docker 可以在很多平臺上運行,無論是物理機、虛擬機、公有云、私有云,甚至是筆記本,其運行結果是一致的。因此用戶可以很輕易的將在一個平臺上運行的應用,遷移到另一個平臺上,而不用擔心運行環境的變化導致應用無法正常運行的情況。

  • 更輕松的維護和擴展

Docker 使用的分層存儲以及鏡像的技術,使得應用重復部分的復用更為容易,也使得應用的維護更新更加簡單,基于基礎鏡像進一步擴展鏡像也變得非常簡單。此外,Docker 團隊同各個開源項目團隊一起維護了一大批高質量的 官方鏡像,既可以直接在生產環境使用,又可以作為基礎進一步定制,大大的降低了應用服務的鏡像制作成本。

七、特性及局限

1.特性

在docker的網站上提到了docker的典型場景:

  • Automating the packaging and deployment of applications(使應用的打包與部署自動化)
  • Creation of lightweight, private PAAS environments(創建輕量、私密的PAAS環境)
  • Automated testing and continuous integration/deployment(實現自動化測試和持續的集成/部署)
  • Deploying and scaling web apps, databases and backend services(部署與擴展webapp、數據庫和后臺服務)

由于其基于LXC的輕量級虛擬化的特點,docker相比KVM之類最明顯的特點就是啟動快,資源占用小。因此對于構建隔離的標準化的運行環境,輕量級的PaaS(如dokku), 構建自動化測試和持續集成環境,以及一切可以橫向擴展的應用(尤其是需要快速啟停來應對峰谷的web應用)。

①構建標準化的運行環境,現有的方案大多是在一個baseOS上運行一套puppet/chef,或者一個image文件,其缺點是前者需要base OS許多前提條件,后者幾乎不可以修改(因為copy on write 的文件格式在運行時rootfs是read only的)。并且后者文件體積大,環境管理和版本控制本身也是一個問題。

②PaaS環境是不言而喻的,其設計之初和dotcloud的案例都是將其作為PaaS產品的環境基礎

③因為其標準化構建方法(buildfile)和良好的REST API,自動化測試和持續集成/部署能夠很好的集成進來

③因為LXC輕量級的特點,其啟動快,而且docker能夠只加載每個container變化的部分,這樣資源占用小,能夠在單機環境下與KVM之類的虛擬化方案相比能夠更加快速和占用更少資源

2.局限

Docker并不是全能的,設計之初也不是KVM之類虛擬化手段的替代品,簡單總結幾點:

  • Docker是基于Linux 64bit的,無法在32bit的linux/Windows/unix環境下使用
  • LXC是基于cgroup等linux kernel功能的,因此container的guest系統只能是linux base的
  • 隔離性相比KVM之類的虛擬化方案還是有些欠缺,所有container公用一部分的運行庫
  • 網絡管理相對簡單,主要是基于namespace隔離
  • cgroup的cpu和cpuset提供的cpu功能相比KVM的等虛擬化方案相比難以度量(所以dotcloud主要是按內存收費)
  • Docker對disk的管理比較有限
  • container隨著用戶進程的停止而銷毀,container中的log等用戶數據不便收集

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2009-06-12 18:39:37

Django簡介Django模型定義

2023-07-13 15:24:13

云計算云原生架構

2018-09-26 08:44:22

Apache Flin流計算計算模式

2009-12-24 10:14:20

Fedora 8桌面

2014-11-17 09:54:35

云計算Docker

2022-10-28 16:57:18

DockerWasm

2022-09-02 08:33:23

ZooKeeper分布式

2013-05-23 10:00:42

2019-01-03 10:17:53

Apache FlinTable API代碼

2023-10-11 06:50:32

Oracle數據庫系統

2021-07-07 09:18:00

Java并發編程

2017-04-25 07:13:29

2010-03-31 10:31:18

開源許可協議

2022-11-19 09:30:31

開源容器

2021-04-23 09:21:57

云計算Docker教程Docker配置網絡

2019-05-28 16:09:52

Docker

2017-03-10 11:05:38

Linux發行版

2012-09-24 14:03:58

C#網絡協議C

2016-04-28 14:25:12

Docker安全

2023-10-10 00:09:14

點贊
收藏

51CTO技術棧公眾號

黄色影院一级片| 骚视频在线观看| 17videosex性欧美| 国产精品中文字幕日韩精品| 成人激情视频在线| 欧美欧美在线| 国产一区二区三区在线视频| 在线播放毛片| 99视频精品全部免费在线| 成人在线免费观看一区| 精品国产影院| 欧美精品福利视频| 美女日韩一区| 久久精品精品电影网| 国产探花在线观看| 日韩欧美999| 国产一二三视频| 亚洲高清在线精品| 午夜在线观看视频网站| 亚洲v中文字幕| 午夜在线观看91| 91久久免费观看| 嫩草研究院在线| 亚洲欧美区自拍先锋| av成人动漫| 粉嫩aⅴ一区二区三区四区五区 | 和岳每晚弄的高潮嗷嗷叫视频| 伊人精品成人久久综合软件| 成人国产在线视频| 尤物tv在线精品| 久色乳综合思思在线视频| 欧美激情不卡| 亚洲成人网久久久| 里番在线播放| 一本色道久久综合亚洲精品小说| 在线播放一区二区精品视频| 亚洲国产精品yw在线观看| 日韩在线精品强乱中文字幕| 亚洲性夜色噜噜噜7777| 色综合一区二区日本韩国亚洲| 在线精品国产欧美| 超碰在线caoporn| 亚洲mv在线观看| 动漫一区二区| 国产精品流白浆视频| 成人在线免费观看网站| 大陆av在线播放| 国产精品久久久久久久第一福利| 麻豆导航在线观看| 久久电影一区二区| 久久久一二三| 日本三级免费观看| 在线亚洲免费视频| 久久久成人精品一区二区三区| 欧美丝袜激情| 99色在线播放| 97色在线视频| 在线观看高清av| 久久国产精品电影| 国产精品正在播放| 天天色天天射天天综合网| 91免费的视频在线播放| 亚洲综合免费观看高清在线观看| 97精品国产综合久久久动漫日韩| 欧美高清性xxxxhd| 欧美一区二区三区四区高清| 欧美体内she精视频在线观看| 蜜桃一级网站.| 国产精品啪视频| 欧美无人高清视频在线观看| 亚洲精华国产欧美| 99精品美女视频在线观看热舞| 中文字幕有码av| 成人网在线免费看| 欧美一区2区视频在线观看| 久久国产精品第一页| 欧美福利在线播放| 免费男女羞羞的视频网站中文字幕| 91高潮在线观看| 欧美性jizz18性欧美| 麻豆91在线播放| 欧美精品密入口播放| 在线一二三区| 一本久久a久久精品vr综合| 国产亚洲日本欧美韩国| 亚洲天堂成人在线观看| 丰满亚洲少妇av| 日韩三级网址| a免费在线观看| 永久免费的av网站| 亚洲综合欧美日韩| 91九色国产社区在线观看| 国产视频丨精品|在线观看| 亚洲精品v日韩精品| 日本成人在线一区| 中文字幕精品影院| 欧美xxx视频| 国产调教视频在线观看| 成人天堂入口网站| 国产福利片一区二区| 国产精品一区视频网站| 欧美综合在线第二页| 中文字幕欧美专区| 亚洲精品xxxx| 欧美精品一区二区三区在线 | 日韩一区二区欧美| 91成人免费在线视频| 91视视频在线直接观看在线看网页在线看 | 日韩av在线高清| 好吊妞这里只有精品| 美日韩精品免费| 精品国模在线视频| 91麻豆精品国产无毒不卡在线观看 | 日韩精品三区| 高清一级毛片视频| 婷婷视频在线播放| 成人av色在线观看| 欧美激情综合色综合啪啪五月| 亚洲韩国一区二区三区| 午夜精品久久久久99热蜜桃导演 | 国产精品分类| 精品在线99| 一级黄色在线| 色偷偷av一区二区三区乱| 欧美日韩中字一区| 亚洲国产精品久久艾草纯爱| 国产精品久久午夜夜伦鲁鲁| 91在线看国产| 国产成人av一区二区三区在线 | 成人一区二区av| 亚洲不卡1区| 亚洲一卡二卡| 日本一二三区视频在线| 精品国产一区二区三区无码| 欧美tickling网站挠脚心| 一区二区影视| 日本美女高清在线观看免费| 国产欧美一区二区三区鸳鸯浴 | 亚洲日产av中文字幕| 九色porny蝌蚪视频在线观看| 国产精品久久久精品| 色av成人天堂桃色av| 精品一区二区三区在线观看| 国产videos久久| caoporn国产精品免费视频| 日本一道在线观看| 日本久久久久亚洲中字幕| 欧美麻豆精品久久久久久| 成人av在线播放网址| 人人狠狠综合久久亚洲婷| 欧美激情成人动漫| 男人插女人下面免费视频| 国产成人一区二区在线| 欧美一区二区三区喷汁尤物| 国产99久久久国产精品潘金网站| 久久亚洲资源中文字| 天天爽人人爽夜夜爽| 欧美精品一区二区三区久久| 亚洲精品中字| 尤物视频免费在线观看| 国产精品av免费观看| 精品无码一区二区三区爱欲| 波多野结衣天堂| 欧美一区二区综合| av免费在线一区二区三区| 成人网在线视频| 欧美吻胸吃奶大尺度电影| 亚洲欧美久久久| 亚洲成av在线| 可以免费看污视频的网站| 成人av番号网| 717成人午夜免费福利电影| 国产激情视频一区二区在线观看| 久久视频免费| 欧美香蕉爽爽人人爽| 超碰在线免费观看97| 91大神在线播放精品| 欧美丝袜自拍制服另类| 国产成人午夜精品影院观看视频 | 国产精品va视频| 午夜在线观看91| 91精品一区二区三区四区| 青草成人免费视频| 91精品一区二区三区久久久久久| 成人av电影在线| 欧美日韩一区二区高清| 色猫猫成人app| 午夜在线观看91| 男女啪啪免费视频网站| 91午夜理伦私人影院| 亚洲色图25p| 欧美日韩国产精品一区二区三区四区 | 天涯成人国产亚洲精品一区av| 欧美aaaaaa午夜精品| 精品久久对白| 麻豆网站在线观看| 妓院一钑片免看黄大片| 国产精品免费一区二区三区观看 | 国产精品人成在线观看免费| 亚洲作爱视频|