吴忠躺衫网络科技有限公司

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

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

3天內不再提示

Docker和容器技術為什么會這么火爆

Linux愛好者 ? 來源:鮮棗課堂 ? 作者:小棗君 ? 2021-11-17 10:27 ? 次閱讀

2010年,幾個搞IT的年輕人,在美國舊金山成立了一家名叫“dotCloud”的公司

這家公司主要提供基于PaaS的云計算技術服務。具體來說,是和LXC有關的容器技術。

后來,dotCloud公司將自己的容器技術進行了簡化和標準化,并命名為——Docker。

Docker技術誕生之后,并沒有引起行業(yè)的關注。而dotCloud公司,作為一家小型創(chuàng)業(yè)企業(yè),在激烈的競爭之下,也步履維艱。

正當他們快要堅持不下去的時候,腦子里蹦出了“開源”的想法。

什么是“開源”?開源,就是開放源代碼。也就是將原來內部保密的程序源代碼開放給所有人,然后讓大家一起參與進來,貢獻代碼和意見。

有的軟件是一開始就開源的。也有的軟件,是混不下去,創(chuàng)造者又不想放棄,所以選擇開源。自己養(yǎng)不活,就吃“百家飯”嘛。

2013年3月,dotCloud公司的創(chuàng)始人之一,Docker之父,28歲的Solomon?Hykes正式?jīng)Q定,將Docker項目開源。

不開則已,一開驚人。

越來越多的IT工程師發(fā)現(xiàn)了Docker的優(yōu)點,然后蜂擁而至,加入Docker開源社區(qū)。

Docker的人氣迅速攀升,速度之快,令人瞠目結舌。

開源當月,Docker 0.1 版本發(fā)布。此后的每一個月,Docker都會發(fā)布一個版本。到2014年6月9日,Docker 1.0 版本正式發(fā)布。

此時的Docker,已經(jīng)成為行業(yè)里人氣最火爆的開源技術,沒有之一。甚至像Google、微軟、Amazon、VMware這樣的巨頭,都對它青睞有加,表示將全力支持。

Docker火了之后,dotCloud公司干脆把公司名字也改成了Docker Inc. 。

Docker和容器技術為什么會這么火爆?說白了,就是因為它“輕”。

在容器技術之前,業(yè)界的網(wǎng)紅是虛擬機。虛擬機技術的代表,是VMWare和OpenStack。

相信很多人都用過虛擬機。虛擬機,就是在你的操作系統(tǒng)里面,裝一個軟件,然后通過這個軟件,再模擬一臺甚至多臺“子電腦”出來。

在“子電腦”里,你可以和正常電腦一樣運行程序,例如開QQ。如果你愿意,你可以變出好幾個“子電腦”,里面都開上QQ?!白与娔X”和“子電腦”之間,是相互隔離的,互不影響。

虛擬機屬于虛擬化技術。而Docker這樣的容器技術,也是虛擬化技術,屬于輕量級的虛擬化。

虛擬機雖然可以隔離出很多“子電腦”,但占用空間更大,啟動更慢,虛擬機軟件可能還要花錢(例如VMWare)。

而容器技術恰好沒有這些缺點。它不需要虛擬出整個操作系統(tǒng),只需要虛擬一個小規(guī)模的環(huán)境(類似“沙箱”)。

它啟動時間很快,幾秒鐘就能完成。而且,它對資源的利用率很高(一臺主機可以同時運行幾千個Docker容器)。此外,它占的空間很小,虛擬機一般要幾GB到幾十GB的空間,而容器只需要MB級甚至KB級。

正因為如此,容器技術受到了熱烈的歡迎和追捧,發(fā)展迅速。

我們具體來看看Docker。

大家需要注意,Docker本身并不是容器,它是創(chuàng)建容器的工具,是應用容器引擎。

想要搞懂Docker,其實看它的兩句口號就行。

第一句,是“Build, Ship and Run”。

也就是,“搭建、發(fā)送、運行”,三板斧。

舉個例子:

我來到一片空地,想建個房子,于是我搬石頭、砍木頭、畫圖紙,一頓操作,終于把這個房子蓋好了。

結果,我住了一段時間,想搬到另一片空地去。這時候,按以往的辦法,我只能再次搬石頭、砍木頭、畫圖紙、蓋房子。

但是,跑來一個老巫婆,教會我一種魔法。

這種魔法,可以把我蓋好的房子復制一份,做成“鏡像”,放在我的背包里。

等我到了另一片空地,就用這個“鏡像”,復制一套房子,擺在那邊,拎包入住。

怎么樣?是不是很神奇?

所以,Docker的第二句口號就是:“Build?once,Run?anywhere(搭建一次,到處能用)”。

Docker技術的三大核心概念,分別是:

鏡像(Image)

容器(Container)

倉庫(Repository)

我剛才例子里面,那個放在包里的“鏡像”,就是Docker鏡像。而我的背包,就是Docker倉庫。我在空地上,用魔法造好的房子,就是一個Docker容器。

說白了,這個Docker鏡像,是一個特殊的文件系統(tǒng)。它除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(例如環(huán)境變量)。鏡像不包含任何動態(tài)數(shù)據(jù),其內容在構建之后也不會被改變。

也就是說,每次變出房子,房子是一樣的,但生活用品之類的,都是不管的。誰住誰負責添置。

每一個鏡像可以變出一種房子。那么,我可以有多個鏡像呀!

也就是說,我蓋了一個歐式別墅,生成了鏡像。另一個哥們可能蓋了一個中國四合院,也生成了鏡像。還有哥們,蓋了一個非洲茅草屋,也生成了鏡像。。。

這么一來,我們可以交換鏡像,你用我的,我用你的,豈不是很爽?

于是乎,就變成了一個大的公共倉庫。

負責對Docker鏡像進行管理的,是Docker Registry服務(類似倉庫管理員)。

不是任何人建的任何鏡像都是合法的。萬一有人蓋了一個有問題的房子呢?

所以,Docker Registry服務對鏡像的管理是非常嚴格的。

最常使用的Registry公開服務,是官方的Docker Hub,這也是默認的 Registry,并擁有大量的高質量的官方鏡像。

好了,說完了Docker,我們再把目光轉向K8S。

就在Docker容器技術被炒得熱火朝天之時,大家發(fā)現(xiàn),如果想要將Docker應用于具體的業(yè)務實現(xiàn),是存在困難的——編排、管理和調度等各個方面,都不容易。于是,人們迫切需要一套管理系統(tǒng),對Docker及容器進行更高級更靈活的管理。

就在這個時候,K8S出現(xiàn)了。

K8S,就是基于容器的集群管理平臺,它的全稱,是kubernetes。

Kubernetes 這個單詞來自于希臘語,含義是舵手或領航員。K8S是它的縮寫,用“8”字替代了“ubernete”這8個字符。

和Docker不同,K8S的創(chuàng)造者,是眾人皆知的行業(yè)巨頭——Google。

然而,K8S并不是一件全新的發(fā)明。它的前身,是Google自己搗鼓了十多年的Borg系統(tǒng)。

K8S是2014年6月由Google公司正式公布出來并宣布開源的。

同年7月,微軟、Red Hat、IBM、Docker、CoreOS、 Mesosphere和Saltstack 等公司,相繼加入K8S。

之后的一年內,VMware、HP、Intel等公司,也陸續(xù)加入。

2015年7月,Google正式加入OpenStack基金會。與此同時,Kuberentes v1.0正式發(fā)布。

目前,kubernetes的版本已經(jīng)發(fā)展到V1.13。

K8S的架構,略微有一點復雜,我們簡單來看一下。

一個K8S系統(tǒng),通常稱為一個K8S集群(Cluster)。

這個集群主要包括兩個部分:

一個Master節(jié)點(主節(jié)點)

一群Node節(jié)點(計算節(jié)點)

一看就明白:Master節(jié)點主要還是負責管理和控制。Node節(jié)點是工作負載節(jié)點,里面是具體的容器。

深入來看這兩種節(jié)點。

首先是Master節(jié)點。

Master節(jié)點包括API Server、Scheduler、Controller manager、etcd。

API Server是整個系統(tǒng)的對外接口,供客戶端和其它組件調用,相當于“營業(yè)廳”。

Scheduler負責對集群內部的資源進行調度,相當于“調度室”。

Controller manager負責管理控制器,相當于“大總管”。

然后是Node節(jié)點。

Node節(jié)點包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可選),還有就是Pod。

Pod是Kubernetes最基本的操作單元。一個Pod代表著集群中運行的一個進程,它內部封裝了一個或多個緊密相關的容器。除了Pod之外,K8S還有一個Service的概念,一個Service可以看作一組提供相同服務的Pod的對外訪問接口。這段不太好理解,跳過吧。

Docker,不用說了,創(chuàng)建容器的。

Kubelet,主要負責監(jiān)視指派到它所在Node上的Pod,包括創(chuàng)建、修改、監(jiān)控、刪除等。

Kube-proxy,主要負責為Pod對象提供代理。

Fluentd,主要負責日志收集、存儲與查詢。

是不是有點懵?唉,三言兩語真的很難講清楚,繼續(xù)跳過吧。

Docker和K8S都介紹完了,然而文章并沒有結束。

接下來的部分,是寫給核心網(wǎng)工程師甚至所有通信工程師看的。

從幾十年前的1G,到現(xiàn)在的4G,再到將來的5G,移動通信發(fā)生了翻天覆地的變化,核心網(wǎng)亦是如此。

但是,如果你仔細洞察這些變化,會發(fā)現(xiàn),所謂的核心網(wǎng),其實本質上并沒有發(fā)生改變,無非就是很多的服務器而已。不同的核心網(wǎng)網(wǎng)元,就是不同的服務器,不同的計算節(jié)點。

變化的,是這些“服務器”的形態(tài)和接口:形態(tài),從機柜單板,變成機柜刀片,從機柜刀片,變成X86通用刀片服務器;接口,從中繼線纜,變成網(wǎng)線,從網(wǎng)線,變成光纖。

就算變來變去,還是服務器,是計算節(jié)點,是CPU。

既然是服務器,那么就勢必會和IT云計算一樣,走上虛擬化的道路。畢竟,虛擬化有太多的優(yōu)勢,例如前文所說的低成本、高利用率、充分靈活、動態(tài)調度,等等。

前幾年,大家以為虛擬機是核心網(wǎng)的終極形態(tài)。目前看來,更有可能是容器化。這幾年經(jīng)常說的NFV(網(wǎng)元功能虛擬化),也有可能改口為NFC(網(wǎng)元功能容器化)。

以VoLTE為例,如果按以前2G/3G的方式,那需要大量的專用設備,分別充當EPC和IMS的不同網(wǎng)元。

而采用容器之后,很可能只需要一臺服務器,創(chuàng)建十幾個容器,用不同的容器,來分別運行不同網(wǎng)元的服務程序。

這些容器,隨時可以創(chuàng)建,也可以隨時銷毀。還能夠在不停機的情況下,隨意變大,隨意變小,隨意變強,隨意變弱,在性能和功耗之間動態(tài)平衡。

簡直完美!

5G時代,核心網(wǎng)采用微服務架構,也是和容器完美搭配——單體式架構(Monolithic)變成微服務架構(Microservices),相當于一個全能型變成N個專能型。每個專能型,分配給一個隔離的容器,賦予了最大程度的靈活。

按照這樣的發(fā)展趨勢,在移動通信系統(tǒng)中,除了天線,剩下的部分都有可能虛擬化。核心網(wǎng)是第一個,但不是最后一個。虛擬化之后的核心網(wǎng),與其說屬于通信,實際上更應該歸為IT。核心網(wǎng)的功能,只是容器中普通一個軟件功能而已。

至于說在座的各位核心網(wǎng)工程師,恭喜你們,馬上就要成功轉型啦!

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 軟件
    +關注

    關注

    69

    文章

    5009

    瀏覽量

    88074
  • IT
    IT
    +關注

    關注

    2

    文章

    868

    瀏覽量

    63633
  • 開源
    +關注

    關注

    3

    文章

    3402

    瀏覽量

    42712

原文標題:10 分鐘看懂 Docker 和 K8S

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Docker-鏡像的分層-busybox鏡像制作

    docker hub里面查看busybox的Dockerfile, 知識點4:bootfs 和 rootfs? 知識點5:為什么Docker鏡像要采用這種分層結構? 如果多個容器共享一份基礎鏡像,當某個
    的頭像 發(fā)表于 01-15 10:44 ?132次閱讀
    <b class='flag-5'>Docker</b>-鏡像的分層-busybox鏡像制作

    在華為云上通過 Docker 容器部署 Elasticsearch 并進行性能評測

    前言 ? 1. 華為云X實例介紹及優(yōu)勢 ? 1.1 柔性算力 ? 1.2 vCPU和內存的靈活配比 ? 1.3 成本效益與性能 ? 2. 安裝并運行 Docker ? 2.1 修改倉庫配置文件
    的頭像 發(fā)表于 01-13 13:36 ?110次閱讀
    在華為云上通過 <b class='flag-5'>Docker</b> <b class='flag-5'>容器</b>部署 Elasticsearch 并進行性能評測

    Dockerfile鏡像制作與Docker-Compose容器編排

    Dockerfile鏡像制作 docker/podman中, 鏡像是容器的基礎,每次執(zhí)行docker run的時候都會指定哪個基本鏡像作為容器運行的基礎。我們之前的
    的頭像 發(fā)表于 01-07 11:01 ?162次閱讀
    Dockerfile鏡像制作與<b class='flag-5'>Docker</b>-Compose<b class='flag-5'>容器</b>編排

    在華為云 FlexusX 實例上實現(xiàn) Docker 容器的實時監(jiān)控與可視化分析

    前言 華為云 Flexus X,以頂尖算力與智能調度,引領 Docker 容器管理新風尚。828 企業(yè)上云節(jié)之際,F(xiàn)lexus X 攜手前沿技術,實現(xiàn)容器運行的實時監(jiān)控與數(shù)據(jù)可視化,讓
    的頭像 發(fā)表于 01-02 13:42 ?116次閱讀
    在華為云 FlexusX 實例上實現(xiàn) <b class='flag-5'>Docker</b> <b class='flag-5'>容器</b>的實時監(jiān)控與可視化分析

    k8s和docker區(qū)別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器技術的兩大流行工具。Docker關注構建和打包容器,適用于本地開發(fā)和單主機管理;而K8s
    的頭像 發(fā)表于 12-11 13:55 ?181次閱讀

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

    技術,一個相同配置的主機往往可以運行更多數(shù)量的應用。 更快速的啟動時間:傳統(tǒng)的虛擬機技術啟動應用服務往往需要數(shù)分鐘,而Docker容器應用,由于直接運行于宿主內核,無需啟動完整的操作系
    發(fā)表于 07-25 14:36

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

    ,一個相同配置的主機往往可以運行更多數(shù)量的應用。更快速的啟動時間:傳統(tǒng)的虛擬機技術啟動應用服務往往需要數(shù)分鐘,而Docker容器應用,由于直接運行于宿主內核,無需啟動完整的操作系統(tǒng),因此可以做到秒級
    發(fā)表于 07-17 11:05

    Jtti:Docker替代調虛機嗎

    Docker是計算虛擬化的一種方式,和使用虛擬機進行虛擬化是類似的。由于近幾年Docker技術的流行和發(fā)展。所以單獨介紹一下Docker。首先先回答下面一個問題。 1.
    的頭像 發(fā)表于 07-12 14:38 ?378次閱讀
    Jtti:<b class='flag-5'>Docker</b><b class='flag-5'>會</b>替代調虛機嗎

    關于Docker 的清理命令集錦

    這篇文章主要介紹了Docker 清理命令集錦,需要的朋友可以參考下 復制代碼代碼如下: docker kill $(docker ps -a -q) ?刪除所有已經(jīng)停止的容器 復制代碼
    的頭像 發(fā)表于 06-13 15:56 ?433次閱讀

    容器怎么完成和容器引擎的映射

    Javascript與Java應用程序綁定在一起,從而實現(xiàn)應用程序的自動化測試。 Docker 示例 docker run -d -p 宿主機端口:容器端口 鏡像名 例如,要將容器的8
    的頭像 發(fā)表于 06-06 15:18 ?413次閱讀

    適合大學生的鴻蒙開發(fā)板-Purple Pi OH之安裝Docker

    個開放源代碼的應用容器引擎,允許開發(fā)者打包他們的應用及依賴包到一個可移植的容器中,這個容器可以在任何支持Docker的Linux機器上運行。這里我們適配了purp
    的頭像 發(fā)表于 05-10 08:32 ?657次閱讀
    適合大學生的鴻蒙開發(fā)板-Purple Pi OH之安裝<b class='flag-5'>Docker</b>

    基于全志T113-i的Docker容器實現(xiàn)方案

    通過使用Docker,開發(fā)人員可以更容易地構建、交付和運行應用程序,同時確保應用程序的一致性及可移植性。它也使得應用程序的部署更加靈活、高效,因為它可以快速地啟動、停止和擴展容器,而不會影響其他容器或主機系統(tǒng)。
    發(fā)表于 04-19 09:45 ?994次閱讀
    基于全志T113-i的<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>實現(xiàn)方案

    Docker容器技術的安裝和使用

    通過Docker,開發(fā)人員可以更容易地構建、交付和運行應用程序,同時確保應用程序的一致性和可移植性。它也使得應用程序的部署更加靈活和高效,因為它可以快速地啟動、停止和擴展容器,而不會影響其他容器或主機系統(tǒng)。
    發(fā)表于 04-16 11:24 ?365次閱讀
    <b class='flag-5'>Docker</b><b class='flag-5'>容器</b><b class='flag-5'>技術</b>的安裝和使用

    Docker容器實現(xiàn)開機自動啟動策略

    如果你的容器依賴于其他服務(例如數(shù)據(jù)庫或其他容器),你需要確保這些服務在你的容器啟動之前就已經(jīng)可用。這可以通過編排工具如Docker Compose來管理,或者通過編寫自定義的啟動腳本
    的頭像 發(fā)表于 03-11 10:33 ?2940次閱讀

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

    什么是Docker? (1)Docker的架構 Docker是一個開源的應用容器引擎,讓開發(fā)者可打包他們的應用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windo
    的頭像 發(fā)表于 03-07 13:48 ?846次閱讀
    ARM平臺實現(xiàn)<b class='flag-5'>Docker</b><b class='flag-5'>容器</b><b class='flag-5'>技術</b>
    百家乐官网号论坛博彩正网| 明升备用网站| 做生意风水 门对门| 百家乐官网庄闲客户端| 大发888澳88| 百家乐论坛代理合作| 百家乐官网高手心得| 新濠天地娱乐城| 澳门百家乐网40125| 环球百家乐现金网| 百家乐官网赌博代理荐| 高密市| 大发888娱乐场168| 366百家乐赌博| 百家乐官网五湖四海娱乐场开户注册 | 百家乐园选蒙| 如何看百家乐的路纸| 正品百家乐官网地址| 百家乐官网tt娱乐| qq德州扑克官网| 七胜百家乐赌场娱乐网规则| 24山72局消砂| 百家乐官网投注秘笈| 百家乐包赢| 百家乐走势图解| 在线百家乐娱乐| 百家乐官网斗地主下载| 浩博百家乐官网娱乐城| 久胜娱乐| 大发888 充值淘宝| 唐朝百家乐的玩法技巧和规则 | www.18lk.com| 波克棋牌官网| 百博百家乐的玩法技巧和规则| 百家乐现金平台排名| 网上百家乐官网指| 百家乐官网与龙虎斗怎么玩| 百家乐官网视频打牌| 世博娱乐城| 棋牌网| 大发888娱乐场下载新澳博|