Docker火熱的容器
Docker 是 PaaS 提供商 dotCloud 開源的一個基于 LXC 的高級容器引擎。PaaS(Platform as a Service) 是位于IaaS和SaaS模型之間的一種云服務(wù)。
Docker 最初是 dotCloud 公司發(fā)起的一個公司內(nèi)部項目,它是基于 dotCloud 公司多年云服務(wù)技術(shù)的一次革新。
行業(yè)競爭太過激烈公司都要混不下去了,這時dotCloud的領(lǐng)導(dǎo)層做了一個大膽的決定,將項目開源。 2013 年 3月Docker以 Apache 2.0 授權(quán)協(xié)議開源,主要項目代碼在 GitHub 上進行維護。
Docker 自開源后受到廣泛的關(guān)注和討論,至今其 GitHub 項目已經(jīng)超過 4 萬 6 千個星標和一萬多個 fork。
甚至由于 Docker 項目的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。
容器生態(tài)系統(tǒng)
一個軟件項目成功與否的一個重要特征,是能否帶動一個生態(tài)系統(tǒng)的發(fā)展,以Docke為代表的容器技術(shù)顯然做到了這一點。
當然,容器技術(shù)的迅猛發(fā)展與其強大的生態(tài)系統(tǒng)息息相關(guān)。下面通過2張圖來整體審視一下它。
從圖中可以看出,容器技術(shù)的生態(tài)系統(tǒng)自下而上分別覆蓋了IaaS層和PaaS層涉及的各類問題,包括資源調(diào)度、編排、部署、監(jiān)控、配置管理,存儲網(wǎng)絡(luò)管理,安全,容器化應(yīng)用支撐平臺等。
容器與云計算
20世紀集裝箱徹底顛覆了全球運輸業(yè)和世界經(jīng)濟。而今天,云計算領(lǐng)域的容器就像集裝箱一樣,正在改變世界。
Docker 目前已經(jīng)得到了眾多公有云平臺的支持,并成為除虛擬機之外的核心云業(yè)務(wù)。
除了 亞馬遜云AWS、Google、Azure、Docker 官方云服務(wù)等,國內(nèi)的各大公有云廠商,騰訊云、阿里云等基本上都同時支持了虛擬機服務(wù)和容器服務(wù),甚至還專門推出了容器云業(yè)務(wù)。
為什么說 docker 是快速部署?
我們做一個項目,最不想面對的不是開發(fā),也不是調(diào)試,而是部署!!!
比如我們使用Python開發(fā)了一個項目,我們的環(huán)境是 Python3 ,然而客戶1使用的是 Python2 ,客戶2根本沒有 Python 環(huán)境。這個時候我們就需要先去新機器上部署 Python。
Python部署完成后,項目里面還要用到 MySQL,安裝完P(guān)ython 的MySQL模塊。項目里面還有 redis, 兩種非對稱加密,還有三方隊列,還有阿里云的接口……
假設(shè),我們把服務(wù)裝進了 docker 中會怎樣呢?
首先安裝docker,再把做好的鏡像使用命令 pull 了下來,再使用命令 docker start XXXXXX,部署就完成了。只要你的環(huán)境安裝了docker,部署輕松又簡單。
你說多服務(wù)?那就寫個docker-compose.file,同學(xué)集群部署了解一下,有Kubernetes、Mesos,F(xiàn)leet和Swarm 任君挑選。(Swarm,Docker 三劍客項目之一,后面會有介紹)
Docker基本概念
鏡像( Image )
容器( Container )
倉庫( Repository )
理解了這三個概念,就理解了 Docker 的整個生命周期。
? Docker 鏡像是一個特殊的文件系統(tǒng),除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變。
? 容器的實質(zhì)是進程,但與直接在宿主執(zhí)行的進程不同,容器進程運行于屬于自己的獨立的命名空間。因此容器可以擁有自己的 root 文件系統(tǒng)、自己的網(wǎng)絡(luò)配置、自己的進程空間,甚至自己的用戶 ID 空間。容器內(nèi)的進程是運行在一個隔離的環(huán)境里,類似于沙盒,使用起來,就好像是在一個獨立于宿主的系統(tǒng)下操作一樣。這種特性使得容器封裝的應(yīng)用比直接在宿主運行更加安全。
? 倉庫( Repository )是集中存放鏡像的地方。與之很容易混淆的概念是注冊服務(wù)器( Registry )。注冊服務(wù)器是管理倉庫的具體服務(wù)器,每個服務(wù)器上可以有多個倉庫,而每個倉庫下面有多個鏡像。從這方面來說,倉庫可以被認為是一個具體的項目或目錄。例如對于倉庫地址dl.dockerpool.com/ubuntu 來說,dl.dockerpool.com 是注冊服務(wù)器地址, ubuntu 是倉庫名。
Docker 三劍客
Docker Compose 項目
Docker Machine 項目
Docker Swarm 項目
? Docker Compose 是 Docker 官方編排(Orchestration)項目之一,負責快速的部署分布式應(yīng)用。
在日常工作中,經(jīng)常會碰到需要多個容器相互配合來完成某項任務(wù)的情況。例如要實現(xiàn)一個 Web 項目,除了 Web 服務(wù)容器本身,往往還需要再加上后端的數(shù)據(jù)庫服務(wù)容器,甚至還包括負載均衡容器等。
Compose 恰好滿足了這樣的需求。它允許用戶通過一個單獨的dockercompose.yml 模板文件(YAML 格式)來定義一組相關(guān)聯(lián)的應(yīng)用容器為一個項目(project)。
Compose 中有兩個重要的概念:
■ 服務(wù) ( service ):一個應(yīng)用的容器,實際上可以包括若干運行相同鏡像的容器實例。
■ 項目 ( project ):由一組關(guān)聯(lián)的應(yīng)用容器組成的一個完整業(yè)務(wù)單元,在docker-compose.yml 文件中定義。
Compose 的默認管理對象是項目,通過子命令對項目中的一組容器進行便捷地生命周期管理。
Compose 項目由 Python 編寫,實現(xiàn)上調(diào)用了 Docker 服務(wù)提供的 API 來對容器進行管理。因此,只要所操作的平臺支持 Docker API,就可以在其上利用Compose 來進行編排管理。
? Docker Machine 是 Docker 官方編排(Orchestration)項目之一,負責在多種平臺上快速安裝 Docker 環(huán)境。
Docker Machine 項目基于 Go 語言實現(xiàn),目前在 Github 上進行維護。
Docker Machine 是一個工具,它允許你在虛擬宿主機上安裝 Docker Engine ,并使用 docker-machine 命令管理這些宿主機。你可以使用 Machine 在你本地的 Mac 或 Windows box、公司網(wǎng)絡(luò)、數(shù)據(jù)中心、或像 AWS 或 Digital Ocean 這樣的云提供商上創(chuàng)建 Docker 宿主機。
? Docker Swarm 是 Docker 官方三劍客項目之一,提供 Docker 容器集群服務(wù),是Docker 官方對容器云生態(tài)進行支持的核心方案。
使用它,用戶可以將多個 Docker 主機封裝為單個大型的虛擬 Docker 主機,快速打造一套容器云平臺。
相關(guān)產(chǎn)品 >
-
OKA40i-C開發(fā)板
國產(chǎn)工業(yè)級,高清輸出,豐富接口|OKA40i開發(fā)板采用底板+核心板結(jié)構(gòu),基于全志工控行業(yè)平臺級處理器四核Cortex-A7 A40i設(shè)計,主頻1.2GHz,集成MAli400MP2 GPU,內(nèi)存1GB/2GB DDR3L,存儲8GB eMMC。 全志A40i工控行業(yè)芯片平臺 A40i為國產(chǎn)工控行業(yè)芯,全志A40i處理器代表了Allwin在智能工業(yè)控制領(lǐng)域的成就。飛凌嵌入式A40i系列OKA40i-C開發(fā)板是飛凌推出的一款中國芯,全國產(chǎn)級工業(yè)級開發(fā)板,適用于適用于基于視覺交互的工業(yè)控制產(chǎn)品 了解詳情 -
OKT507-C 開發(fā)板
CPU: T507 工業(yè)級處理器,超低功耗,10年+生命周期|推薦全志工業(yè)級T507開發(fā)板系列,飛凌OKT507-C開發(fā)板采用全志T507 四核工業(yè)級處理器 T507設(shè)計開發(fā),Cortex-A53架構(gòu),工業(yè)級寬溫,性能強,低功耗,是一款高性價比的工業(yè)級產(chǎn)品,提供豐富的開發(fā)設(shè)計資料,提供產(chǎn)品規(guī)格書,軟硬件手冊等,全志的T507適用于車載電子、電力、醫(yī)療、工業(yè)控制、物聯(lián)網(wǎng)、智能終端等領(lǐng)域。
了解詳情 -
OKMX8MP-C開發(fā)板
內(nèi)置NPU、ISP,AI計算能力高達2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開發(fā)板 基于高性能低功耗工業(yè)級iMX8MP核心板設(shè)計,支持多種多種高速通信接口。iMX8MP開發(fā)板內(nèi)置NPU,AI計算能力2.3TOPS,支持4K,支持雙圖像信號處理器(ISP),是一款支持LinuxQT/android操作系統(tǒng)的iMX8MP開發(fā)板。
了解詳情 -
OK3568-C開發(fā)板
強而穩(wěn),國產(chǎn)芯,1Tops算力,多路高速接口|飛凌RK3568系列RK3568開發(fā)板基于國產(chǎn)工業(yè)級AI處理器RK3568四核64位Cortex-A55 處理器設(shè)計。RK3568作為國產(chǎn)化高性能處理器,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,NPU達到1Tops,飛凌RK3568系列核心板提供瑞芯微RK3568規(guī)格書_datasheet_數(shù)據(jù)手冊_原理圖等,