一、為什麼需要Docker可能每個開發人員都有一種困擾,軟體開發完之後部署項目,明明測試環境部署了一點問題沒有,怎麼一到正式環境就出錯呢?這種情況有時候問題可能就出在環境配置
2021-07-08 03:02:20
一、為什麼需要Docker
可能每個開發人員都有一種困擾,軟體開發完之後部署項目,明明測試環境部署了一點問題沒有,怎麼一到正式環境就出錯呢?
這種情況有時候問題可能就出在環境配置上,作業系統版本是否一致,軟體運行依賴庫版本是否一致,作業系統設定是否一致......等等都有可能造成部署失敗。
那麼有沒有一種辦法可以保持所有機器的環境配置都一致呢,這樣同時也方便我們遷移系統,不然每次擴容部署就要重新配置一臺機器的環境,這種繁瑣的工作能不能配置好一次,之後就複用呢?
答案是有,這時候就提出了一種方案,虛擬機器(大家應該都知道是啥吧,就不囉嗦了)。
虛擬機器對於作業系統來說只是一個檔案,如果需要多個只需要把虛擬機器匯出為ova檔案,安裝後即和匯出的系統環境一模一樣,這樣就解決了環境配置繁瑣的問題,這樣可以說 99.9999% 項目跑不起來不可能是環境的問題了。
那麼你可能會問,既然虛擬機器都解決了環境配置繁瑣的問題,那為啥 Docker 還過來湊熱鬧呢?
這就涉及到虛擬機器的不足了,虛擬機器佔用資源問題。
虛擬機器是一個完整的作業系統,會佔用磁碟的資源,一個系統需要多少磁碟那麼就會佔用多少磁碟資源。也就意味著假如有 10 臺虛擬機器,那麼就佔用了 10 個作業系統的磁碟空間。哪怕虛擬機器真實使用的記憶體 1MB,虛擬機器仍然需要幾百 MB 的記憶體。同理,幾個虛擬機器則造成了幾個作業系統記憶體的資源浪費。啟動慢,啟動時間基本和作業系統啟動時間一致。說到這裡,你肯定明白了,Docker就可以解決上述的不足。
Docker 是怎麼解決虛擬機器帶來的不足呢?
其實也不能說是 Docker 解決的,應該說 Linux 發展了另一種虛擬化技術:
Linux容器。
有興趣的小夥伴可以去查查資料看看
Linux容器技術發展簡史。
Linux 容器不虛擬化出整個作業系統,簡單來說就是共享作業系統核心 + 必要運行環境,而主角 Docker 只是 Linux容器 思想的實踐產品之一。
容器虛擬化的不是一個完整的作業系統,所以當然磁碟資源佔用少很多。容器複用了 Linux 核心,作為一個程序運行,所以佔用的記憶體自然也少很多。容器作為系統中的一個程序,所以啟動速度當然快很多,基本上是秒級。對比 虛擬機器 和 容器
二、Docker是什麼
1. Docker簡介
Docker 是一個開源項目,誕生於 2013 年初,最初是 dotCloud 公司內部的一個業餘 項目。它基於 Google 公司推出的 Go 語言實現。 項目後來加入了 Linux 基金會,遵從了 Apache 2.0 協議,項目程式碼在 GitHub 上進行維護。Docker 項目的目標是實現輕量級的作業系統虛擬化解決方案。Docker 的基礎是 Linux 容器(LXC)等技術。
2. Docker的三大基礎概念
Docker映象(Image)
Docker 映象就是一個只讀的模板,映象可以用來創建 Docker 容器。
例如:一個映象可以包含一個完整的 ubuntu 作業系統環境,裡面僅安裝了 Apache 或 使用者需要的其它應用程式。
Docker 提供了一個很簡單的機制來創建映象或者更新現有的映象,使用者甚至可以直接 從其他人那裡下載一個已經做好的映象來直接使用。
Docker容器(Container)
Docker 利用容器來運行應用。 容器是從映象創建的運行例項。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
可以把容器看作是一個簡易版的 Linux 環境(包括root 使用者許可權、程序空間、使用者空 間和網路空間等)和運行在其中的應用程式。
Docker倉庫(Registrty)
倉庫是集中存放映象檔案的場所。有時候會把倉庫和倉庫註冊伺服器(Registry)混為 一談,並不嚴格區分。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。
倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。
最大的公開倉庫是 DockerHub,存放了數量龐大的映象供使用者下載。 當然,使用者也可以在本地網路內創建一個私有倉庫。
當用戶創建了自己的映象之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這 樣下次在另外一臺機器上使用這個映象時候,只需要從倉庫上 pull 下來就可以了。
3. 映象、容器、倉庫關係
4. 映象、容器、倉庫的運行關係
相關文章
一、為什麼需要Docker可能每個開發人員都有一種困擾,軟體開發完之後部署項目,明明測試環境部署了一點問題沒有,怎麼一到正式環境就出錯呢?這種情況有時候問題可能就出在環境配置
2021-07-08 03:02:20
新款 Switch 釋出作為目前銷量和知名度最高的遊戲掌機,任天堂 Switch 已經推出四年多,其配置已經算是非常低下了,效能和螢幕經常被使用者吐槽。不過就算是這樣,Switch 依然壟斷
2021-07-08 03:02:11
如今手機行業已經進入2021年下半場,而每年手機行業最熱鬧的還是下半年,今年下半年有蘋果iPhone13系列、三星Note21系列、小米MIX4系列,如今又曝光的vivo X70,同樣是在下半年釋出
2021-07-08 03:02:05
【7月7日訊】相信大家都知道,自從國產手機老大哥華為遭受到重創以後,全球智慧手機市場也再次迎來了大洗牌,在華為手機業務巔峰時期,全球銷量更是突破了兩億臺大關,中海外市場銷量
2021-07-08 03:02:00
最近有訊息稱,蘋果因為市場的巨大壓力以及競爭對手的策略變化,可能下調 iPhone 13 系列的價格。比起 iPhone 12 系列的「加量不加價」,iPhone 13 甚至還會「加量還減價」,這不禁
2021-07-08 03:01:53
果粉之家,專業蘋果手機技術研究十年!您身邊的蘋果專家~迴歸iPhone系列的解鎖方式,從初代iPhone原始的數字密碼解鎖,再到iPhone 5s首次加入的實體Home鍵按壓指紋解鎖以及iPhone 7
2021-07-08 03:01:43