成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發者們,Docker到底是什么,能干什么?

開發 架構
對于大多數開發者來說,Docker之所以被廣泛使用,最主要的原因可能就是方便,它提供了一套標準化的解決方案,極大地提升了部署、發布、運維的效率。因此,如果你的項目中目前還沒有使用Docker,或者想深入了解一下Docker,這篇文章值得你一讀。

?背景

隨著云原生、容器化、微服務、k8s等技術的發展,容器Docker也火了一把,同時也逐漸被軟件開發者在實踐中進行運用。個人在目前接手的項目、參與的項目或技術交流中,發現Docker已經非常普及。

對于大多數開發者來說,Docker之所以被廣泛使用,最主要的原因可能就是方便,它提供了一套標準化的解決方案,極大地提升了部署、發布、運維的效率。因此,如果你的項目中目前還沒有使用Docker,或者想深入了解一下Docker,這篇文章值得你一讀。

Docker是什么?

在聊Docker是什么之前,我們先來回顧一下傳統的產品開發上線涉及到的難點。一款產品從開發到上線,經歷了開發環境、測試環境、生產環境等不同的操作系統、運行環境和應用配置等環境。在項目管理中,還涉及到不同版本以及不同版本之間兼容性等問題。

這些問題對開發人員和運維人員都是極大的考驗,同時對各方的協作也有一定的要求。不然就會出現”代碼在我這里運行的好好的啊“,這種尷尬的局面。而Docker的出現就是提供了一套用來解決此類問題的標準解決方案。

Docker

Docker的口號是”一次創建或配置,可以在任意地方正常運行“。如口號所說,Docker的出現對于開發和運維人員是一大福音,基于Docker可以方便地搞定標準化的發布流程,再也不用糾結不同環境導致的問題了。

其實,Docker的使用可以理解為:軟件是帶環境安裝的,也就是說,安裝的時候把原始環境一模一樣的復制過來一份。這樣也就消除了不同機器運行結果不同的問題。

那么,Docker是什么呢?Docker是一個開源的應用容器引擎,基于Go語言,并遵從Apache2.0協議開源。它可以讓開發者打包應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。Docker可用于開發應用、交付應用、運行應用等場景。

容器是完全使用沙箱機制,相互之間不會有任何接口,更重要的是容器性能開銷極低。Docker允許用戶將基礎設施中的應用單獨分割出來,形成更小的部分容器,從而提高軟件交付速度。

Docker從17.03版本之后分為CE(Community Edition: 社區版)和EE(Enterprise Edition: 企業版),通常使用社區版就可以滿足大多數業務場景。

Docker容器與虛擬機的區別

Docker容器與虛擬機很相似,但它們之間又有著很大的區別。

虛擬機是通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。創建虛擬機時,會將實體機的部分硬盤和內存容量作為虛擬機的硬盤和內存,每個虛擬機都有獨立的硬盤和操作系統,可以像使用實體機一樣對虛擬機進行操作。

虛擬機會消耗大量系統資源和開銷,尤其是當多個虛擬機在同一物理服務器上運行時,每個虛擬機都有自己的子操作系統,大量精力以及資源被用于虛擬化的部署和運行上。

容器類似于虛擬機,只是容器不是完整的操作系統,容器通常只包含必要的操作系統包和應用程序,這就是它們輕量級的原因。

圖片

Docker與虛擬機

可以出,傳統的虛擬機是在宿主機之上,又添加了一個新的操作系統,這就導致了虛擬機的臃腫,不適合遷移。而Docker是直接寄存在宿主機上,完全就會避免大部分虛擬機帶來的困擾。

Docker是一個黑盒的進程,區別于傳統的進程,Docker可以獨立出一個自己的空間,不會使得在Docker中的行為以及變量溢出到宿主機上。

容器與虛擬機的各項區別:

圖片

容器與虛擬機的區別

Docker能做什么?

那么,當在開發中使用了Docker能為我們帶來哪些便利呢?先來看一張圖。

圖片

Docker使用前后對比

在沒有使用Docker時,我們開發完畢一個項目,需要打成war包或jar包。然后,在服務器上進行各種環境的安裝、配置以及應用程序維護,比如:JDK、Tomcat、數據庫等。

而且,上述的配置在開發環境、測試服務器、生產服務器(通常會有很多個),都需要進行一遍同樣的操作,工作量相當繁重。在使用了Docker之后,我們可以自己創建一個空的鏡像從頭構建,也可以使用公共倉庫中已經構建好的鏡像,直接使用。當需要在不同環境中進行部署時,直接使用構建好的鏡像即可,一次構建,多環境多次使用,方便快捷。

Docker的6大優勢

對比傳統的運維發布方式,Docker有以下6大優勢:

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

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

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

4、持續交付和部署對開發和運維(DevOps)來說,最希望的就是一次創建或配置,可以在任意地方正常運行,使用Docker可以通過定制應用鏡像來實現持續集成、持續交付、部署。這一部分的實踐可參考《為了實現CI/CD,先來定制一個Docker鏡像【實戰精華篇】》這篇文章。

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

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

Docker的基礎概念

在使用Docker時,我們要掌握Docker中的一些核心組件及概念。

來看一張Docker的架構圖:

圖片

Docker架構圖

Docker的基本組成是由鏡像(image)、容器(container)、倉庫(repository)構成。

鏡像(image)

Docker鏡像就是一個只讀的模板,是文件與meta data的集合。鏡像是基于分層的實現的,每一層都可以添加刪除文件,從而形成新的鏡像。

鏡像可以理解為是一個樹狀結構,每一個鏡像都會依賴于另一個鏡像,這個依賴關系體現在Docker鏡像制作的Dockerfile中的FROM指令上的。需要注意的是:如果是樹的根,那么就需要"FROM scratch"。

鏡像可以用來創建Docker容器,一個鏡像可以創建多個容器。

容器(container)

Docker利用容器獨立運行的一個或一組應用。容器是用鏡像創建的運行實例,是在image的最后一層上面再添加一層。容器的定義和鏡像幾乎一模一樣,也是一堆層的統一視角,唯一區別在于容器的最上面那一層是可讀可寫的。

容器與鏡像相對比:鏡像負責存儲和分發,容器負責運行,它們之間的關系可以類比Java中類和實例的關系。

容器可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺??梢园讶萜骺醋鍪且粋€簡易版的Linux環境和運行在其中的應用程序。

倉庫(repository)

倉庫是集中存放鏡像文件的場所,它有點類似于Maven/Git的倉庫,當我們需要鏡像文件時,可以從遠程倉庫中拉取。

倉庫和倉庫注冊服務器(Registry)是有區別的。倉庫注冊服務器上存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。

倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。目前最大的公開倉庫是Docker Hub。

小結

通過本篇給大家講解了Docker的基本使用場景、相關概念、Docker能為我們帶來什么、Docker的優勢等,想必大家通過本篇文章已經能夠從整體上了解了Docker的概況。

責任編輯:武曉燕 來源: 程序新視界
相關推薦

2022-12-02 14:57:15

物聯網物聯網平臺

2023-10-07 14:51:46

物聯網物聯網平臺

2018-08-30 17:14:56

2019-08-09 16:01:18

Hadoop數據庫

2014-03-07 10:46:49

編程語言趣味

2012-01-16 08:56:17

開發程序員

2020-04-22 13:29:35

基帶射頻信號

2020-07-08 13:38:10

NginxApache服務器

2013-02-18 08:15:35

powershell

2019-04-22 10:08:52

NginxApacheWEB服務器

2024-01-16 23:30:46

?fractionsPython分數

2014-10-10 13:46:33

Docker

2020-10-14 06:22:14

UWB技術感知

2020-09-27 06:53:57

MavenCDNwrapper

2020-09-22 08:22:28

快充

2010-11-01 01:25:36

Windows NT

2011-04-27 09:30:48

企業架構

2013-08-08 09:55:20

私有云DevOps方法虛擬機

2023-08-18 14:39:20

RCS谷歌

2021-03-04 10:20:41

運維工程師互聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产伦一区二区三区观看方式 | 欧美成人在线网站 | 精品久久香蕉国产线看观看亚洲 | 成人在线免费看 | 亚洲一区久久 | 精品香蕉一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 99精品一区二区三区 | 亚洲黄色一级毛片 | 色婷婷av一区二区三区软件 | 一区二区三区欧美 | 91大神在线资源观看无广告 | 成人国产免费视频 | 亚洲社区在线 | 高清一区二区三区 | 九九色综合| 欧美日韩在线播放 | 天天av综合| 狠狠干2020 | 欧美视频二区 | 国产综合网站 | 国产亚洲精品久久久久动 | 做a视频 | 国产人久久人人人人爽 | 神马福利 | 91.色| 精产国产伦理一二三区 | 亚洲精品久久久9婷婷中文字幕 | 日本一区二区高清不卡 | 91久久国产综合久久91精品网站 | 欧美在线观看一区 | 久久青 | 成人欧美一区二区三区在线播放 | 亚洲国产激情 | www久久国产 | 91在线中文字幕 | 日本特黄a级高清免费大片 成年人黄色小视频 | 青青久草 | 久久视频精品 | 国产成人精品一区二区在线 | 亚洲精品欧美精品 |