自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊Docker容器的前世今生

開源
Docker 是一個開源項目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個業(yè)余項目。它基于 Google 公司推 出的 Go 語言實現(xiàn)。

一、Docker簡介

1、什么是虛擬化

在計算機中,虛擬化(英語:Virtualization)是一種資源管理技術,是將計算機的各種實體資源,如服務器、網(wǎng)絡、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間的不可切割的障礙,使用戶可以比原本的組態(tài)更好的方式來應用這些資源。這些資源的新虛擬部份是不受現(xiàn)有資源的架設方式,地域或物理組態(tài)所限制。一般所指的虛擬化資源包括計算能力和資料存儲。

在實際的生產(chǎn)環(huán)境中,虛擬化技術主要用來解決高性能的物理硬件產(chǎn)能過剩和老的舊的硬件產(chǎn)能過低的重組重用, 透明化底層物理硬件,從而最大化的利用物理硬件

虛擬化技術種類很多,例如:軟件虛擬化、硬件虛擬化、內(nèi)存虛擬化、網(wǎng)絡虛擬化(vip)、桌面虛擬化、服務虛擬化、虛擬機等等。

2、什么是Docker

Docker 是一個開源項目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個業(yè)余項目。它基于 Google 公司推 出的 Go 語言實現(xiàn)。 項目后來加入了 Linux 基金會,遵從了 Apache 2.0 協(xié)議,項目代碼在 GitHub 上進行維護。

Docker 自開源后受到廣泛的關注和討論,以至于 dotCloud 公司后來都改名為 Docker Inc。Redhat 已經(jīng)在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 產(chǎn)品中廣泛應用。

Docker 項目的目標是實現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。

在 LXC 的基礎上 Docker 進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。

為什么選擇Docker?

(1)上手快

用戶只需要幾分鐘,就可以把自己的程序“Docker化”。Docker依賴于“寫時復制”(copy-on-write)模型,使修改應用程序也非常迅速,可以說達到“隨心所致,代碼即改”的境界。

隨后,就可以創(chuàng)建容器來運行應用程序了。大多數(shù)Docker容器只需要不到1秒中即可啟動。由于去除了管理程序的開銷,Docker容器擁有很高的性能,同時同一臺宿主機中也可以運行更多的容器,使用戶盡可能的充分利用系統(tǒng)資源。

(2)職責的邏輯分類

使用Docker,開發(fā)人員只需要關心容器中運行的應用程序,而運維人員只需要關心如何管理容器。Docker設計的目的就是要加強開發(fā)人員寫代碼的開發(fā)環(huán)境與應用程序要部署的生產(chǎn)環(huán)境一致性。

(3)快速高效的開發(fā)生命周期

Docker的目標之一就是縮短代碼從開發(fā)、測試到部署、上線運行的周期,讓你的應用程序具備可移植性,易于構(gòu)建,并易于協(xié)作。(通俗一點說,Docker就像一個盒子,里面可以裝很多物件,如果需要這些物件的可以直接將該大盒子拿走,而不需要從該盒子中一件件的取。)

(4)鼓勵使用面向服務的架構(gòu)

Docker還鼓勵面向服務的體系結(jié)構(gòu)和微服務架構(gòu)。Docker推薦單個容器只運行一個應用程序或進程,這樣就形成了一個分布式的應用程序模型,在這種模型下,應用程序或者服務都可以表示為一系列內(nèi)部互聯(lián)的容器,從而使分布式部署應用程序,擴展或調(diào)試應用程序都變得非常簡單,同時也提高了程序的內(nèi)省性。(當然,可以在一個容器 中運行多個應用程序)

3、 容器與虛擬機比較

容器是在操作系統(tǒng)層面上實現(xiàn)虛擬化,直接復用本地主機的操作系統(tǒng),而傳統(tǒng)方式則是在硬件層面實現(xiàn)

與傳統(tǒng)的虛擬機相比,Docker優(yōu)勢體現(xiàn)為啟動速度快、占用體積小。

4、 Docker 組件

4.1 Docker服務器與客戶端

Docker是一個客戶端-服務器(C/S)架構(gòu)程序。Docker客戶端只需要向Docker服務器或者守護進程發(fā)出請求,服務器或者守護進程將完成所有工作并返回結(jié)果。Docker提供了一個命令行工具Docker以及一整套RESTful API。你可以在同一臺宿主機上運行Docker守護進程和客戶端,也可以從本地的Docker客戶端連接到運行在另一臺宿主機上的遠程Docker守護進程。

4.2 Docker鏡像與容器

鏡像是構(gòu)建Docker的基石。用戶基于鏡像來運行自己的容器。鏡像也是Docker生命周期中的“構(gòu)建”部分。

鏡像是基于聯(lián)合文件系統(tǒng)的一種層式結(jié)構(gòu),由一系列指令一步一步構(gòu)建出來。例如: 添加一個文件; 執(zhí)行一個命令; 打開一個窗口。

也可以將鏡像當作容器的“源代碼”。鏡像體積很小,非?!氨銛y”,易于分享、存儲和更新。

Docker可以幫助你構(gòu)建和部署容器,你只需要把自己的應用程序或者服務打包放進容器即可。容器是基于鏡像啟動起來的,容器中可以運行一個或多個進程。我們可以認為,鏡像是Docker生命周期中的構(gòu)建或者打包階段,而容器則是啟動或者執(zhí)行階段。容器基于鏡像啟動,一旦容器啟動完成后,我們就可以登錄到容器中安裝自己需要的軟件或者服務。

所以Docker容器就是: 一個鏡像格式; 一些列標準操作; 一個執(zhí)行環(huán)境。 Docker借鑒了標準集裝箱的概念。標準集裝箱將貨物運往世界各地,Docker將這個模型運用到自己的設計中,唯一不同的是:集裝箱運輸貨物,而Docker運輸軟件。

和集裝箱一樣,Docker在執(zhí)行上述操作時,并不關心容器中到底裝了什么,它不管是web服務器,還是數(shù)據(jù)庫,或者是應用程序服務器什么的。所有的容器都按照相同的方式將內(nèi)容“裝載”進去。

Docker也不關心你要把容器運到何方:我們可以在自己的筆記本中構(gòu)建容器,上傳到Registry,然后下載到一個物理的或者虛擬的服務器來測試,在把容器部署到具體的主機中。像標準集裝箱一樣,Docker容器方便替換,可以疊加,易于分發(fā),并且盡量通用。

4.3 Registry(注冊中心)

Docker用Registry來保存用戶構(gòu)建的鏡像。Registry分為公共和私有兩種。Docker公司運營公共的Registry叫做 Docker Hub。用戶可以在Docker Hub注冊賬號,分享并保存自己的鏡像(說明:在Docker Hub下載鏡像巨慢, 可以自己構(gòu)建私有的Registry)。

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

2022-09-14 21:15:44

互聯(lián)網(wǎng)存儲技術

2022-06-28 18:47:38

WiFi5G

2024-06-14 09:32:12

2021-05-31 20:06:57

網(wǎng)元協(xié)議網(wǎng)關

2011-08-23 09:52:31

CSS

2015-11-18 14:14:11

OPNFVNFV

2025-02-12 11:25:39

2014-07-30 10:55:27

2016-12-29 13:34:04

阿爾法狗圍棋計算機

2016-12-29 18:21:01

2019-06-04 09:00:07

Jenkins X開源開發(fā)人員

2013-05-23 16:23:42

Windows Azu微軟公有云

2014-07-15 10:31:07

asyncawait

2012-05-18 16:54:21

FedoraFedora 17

2014-07-21 12:57:25

諾基亞微軟裁員

2021-06-17 07:08:19

Tapablewebpack JavaScript

2016-11-08 19:19:06

2016-11-03 13:33:31

2011-05-13 09:43:27

產(chǎn)品經(jīng)理PM
點贊
收藏

51CTO技術棧公眾號