Docker是什么
Docker 是世界領(lǐng)先的軟件容器平臺(tái)且叁。開(kāi)發(fā)人員利用 Docker 可以消除協(xié)作編碼時(shí)“在我的機(jī)器上可正常工作”的問(wèn)題都哭。運(yùn)維人員利用
Docker 可以在隔離容器中并行運(yùn)行和管理應(yīng)用,獲得更好的計(jì)算密度逞带。企業(yè)利用 Docker
可以構(gòu)建敏捷的軟件交付管道质涛,以更快的速度、更高的安全性和可靠的信譽(yù)為 Linux 和 Windows Server
應(yīng)用發(fā)布新功能-----《Docker中文網(wǎng)站》
其實(shí)我的理解是掰担,Docker就是一個(gè)工具,可以快速的創(chuàng)建和模擬各類環(huán)境的一個(gè)工具怒炸。而且性能很好带饱,擴(kuò)展性也強(qiáng)。相信大家都有用過(guò)虛擬機(jī),之前的虛擬機(jī)大小動(dòng)輒以G起跳勺疼,對(duì)于可憐巴巴的開(kāi)發(fā)機(jī)而言教寂,實(shí)在是耗不起。而且执庐,啟動(dòng)又慢又卡酪耕。
Docker優(yōu)點(diǎn)
和傳統(tǒng)的虛擬機(jī)比較而言,作為一種新型的虛擬化方式轨淌,其具有眾多的優(yōu)勢(shì)迂烁。
對(duì)于開(kāi)發(fā)者
Docker 能夠自動(dòng)執(zhí)行重復(fù)性任務(wù),例如搭建和配置開(kāi)發(fā)環(huán)境递鹉,從而解放了開(kāi)發(fā)人員以便他們專注在真正重要的事情上:構(gòu)建杰出的軟件(哈哈盟步,這是真的嗎)。
開(kāi)發(fā)人員使用了Docker躏结,就不必安裝和配置復(fù)雜的數(shù)據(jù)庫(kù)却盘,也無(wú)需在不兼容語(yǔ)言工具鏈版本之間切換時(shí)擔(dān)心。應(yīng)用容器化之后媳拴,其復(fù)雜性就被轉(zhuǎn)移到能夠輕松構(gòu)建黄橘、共享和運(yùn)行的容器中。當(dāng)有新同事安排到新的代碼庫(kù)時(shí)屈溉,無(wú)需再費(fèi)時(shí)費(fèi)力地安裝軟件和解釋設(shè)置過(guò)程塞关。以 Dockerfile 文件形式發(fā)布的代碼使用起來(lái)非常簡(jiǎn)單:首先安裝 Docker 和編輯器,然后拉取作為 Docker 鏡像打包在一起的依賴資源语婴,短短數(shù)分鐘描孟,就能夠構(gòu)建和調(diào)試應(yīng)用了。
不受應(yīng)用砰左、語(yǔ)言或技術(shù)棧限制
構(gòu)建匿醒、測(cè)試、調(diào)試和部署以任何編程語(yǔ)言編寫的 Linux 和 Windows Server 容器應(yīng)用缠导,無(wú)需擔(dān)心任何不兼容或版本沖突廉羔。
絕佳的開(kāi)發(fā)體驗(yàn)
工作就緒時(shí)間縮短 65%:快速構(gòu)建、測(cè)試和運(yùn)行復(fù)雜的多容器應(yīng)用僻造,無(wú)需再浪費(fèi)時(shí)間在服務(wù)器和開(kāi)發(fā)人員機(jī)器上安裝和維護(hù)軟件憋他。所有依賴資源都在容器中運(yùn)行,消除“在我的機(jī)器上可正常工作”的問(wèn)題髓削。
內(nèi)置容器編排
Docker 內(nèi)置易于配置的 Swarm 集群功能竹挡。在使用最小設(shè)置的模擬生產(chǎn)環(huán)境中測(cè)試和調(diào)試應(yīng)用。
對(duì)于實(shí)施運(yùn)維
Docker 簡(jiǎn)化了軟件交付立膛。既能順利地開(kāi)發(fā)和部署漏洞補(bǔ)丁與新功能揪罕,還能夠?qū)崟r(shí)擴(kuò)展應(yīng)用梯码。
Docker 是開(kāi)發(fā)人員和 IT 運(yùn)維團(tuán)隊(duì)的秘密武器。有了
Docker好啰,他們能夠自動(dòng)并安全地構(gòu)建轩娶、交付、測(cè)試和部署應(yīng)用框往,順利地進(jìn)行移植鳄抒。無(wú)需再閱讀令人煩惱的
Wiki、自述文件椰弊、運(yùn)行手冊(cè)许溅、便利貼等等陳舊冗余的信息。使用 Docker
的團(tuán)隊(duì)確信他們的鏡像在開(kāi)發(fā)男应、預(yù)演和生產(chǎn)環(huán)境中都能一樣工作闹司。新功能和修訂都能迅速地悄然部署到客戶環(huán)境。
快速擴(kuò)展
內(nèi)置編排能夠擴(kuò)展到數(shù)千個(gè)節(jié)點(diǎn)和容器沐飘。Docker 容器能夠在短短數(shù)秒之內(nèi)啟動(dòng)和停止游桩,便于擴(kuò)展應(yīng)用服務(wù),以滿足客戶的高峰需求耐朴,并在峰值下降時(shí)縮減規(guī)模借卧。
提高 IT 效率
Docker 讓客戶輕松部署、識(shí)別和解決問(wèn)題筛峭,降低總體 IT 運(yùn)維成本铐刘。縮短部署更新的停機(jī)時(shí)間影晓,或者迅速回滾镰吵,盡量減少中斷運(yùn)行情況。
輕松共享應(yīng)用
Docker 確保應(yīng)用在任何環(huán)境中都能始終如一地工作挂签。在 Docker 鏡像中疤祭,整個(gè)技術(shù)棧和配置都是鏡像的一部分,用戶只需安裝 Docker饵婆,無(wú)需配置主機(jī)環(huán)境勺馆。
個(gè)人覺(jué)得最主要的特點(diǎn)就是可以從繁瑣又重復(fù)的部署或者安裝過(guò)程進(jìn)行了簡(jiǎn)化,基本就是一鍵完成侨核,簡(jiǎn)單又不容易出錯(cuò)草穆。這下測(cè)試人員就有理由懟開(kāi)發(fā)了: 測(cè)試:什么可能環(huán)境不一致,都一個(gè)鏡像里面出來(lái)的搓译! 開(kāi)發(fā):.....(無(wú)語(yǔ)凝噎)
Docker基本概念及組成
對(duì)于Docker而言悲柱,主要是使用了容器技術(shù)。有了容器些己,就可以將軟件運(yùn)行所需的所有資源打包到一個(gè)隔離的容器中诗祸。容器與虛擬機(jī)不同跑芳,不需要捆綁一整套操作系統(tǒng),只需要軟件工作所需的庫(kù)資源和設(shè)置直颅。系統(tǒng)因此而變得高效、輕量怀樟、自給自足功偿,還能保證部署在任何環(huán)境中的軟件都能始終如一地運(yùn)行。
而外插一句往堡,容器和虛擬機(jī)比較:
簡(jiǎn)單來(lái)說(shuō)械荷,Docker主要由以下幾個(gè)部分組成。
客戶端和服務(wù)端
Docker是一個(gè)(C/S)架構(gòu)的程序虑灰。Docker客戶端只需向Docker服務(wù)器或者守護(hù)進(jìn)程發(fā)出請(qǐng)求吨瞎,服務(wù)器或者守護(hù)進(jìn)程將完成所有的工作并返回結(jié)果。Docker守護(hù)進(jìn)程有時(shí)也稱為Docker引擎穆咐。
鏡像(Images)
鏡像就是程序運(yùn)行的環(huán)境的只讀版本颤诀。其包含了所有程序的依賴軟件和配置。
容器(Container)
Docker
利用容器(Container)來(lái)運(yùn)行應(yīng)用对湃。容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例崖叫。它可以被啟動(dòng)、開(kāi)始拍柒、停止心傀、刪除。每個(gè)容器都是相互隔離的拆讯、保證安全的平臺(tái)脂男。可以把容器看做是一個(gè)簡(jiǎn)易版的
Linux 環(huán)境(包括root用戶權(quán)限种呐、進(jìn)程空間宰翅、用戶空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序。
倉(cāng)庫(kù)(Repository)
倉(cāng)庫(kù)用來(lái)保存鏡像陕贮,可以理解為代碼控制中的代碼倉(cāng)庫(kù)堕油。
應(yīng)用場(chǎng)景
微服務(wù)
現(xiàn)在微服務(wù)大行其道之下,微服務(wù)拆分后肮之,一個(gè)項(xiàng)目可能部署包就成倍增加了掉缺,而且可能各微服務(wù)之間的技術(shù)棧是不同的,這時(shí)候docker就是最佳選擇了戈擒。
持續(xù)集成和持續(xù)部署 (CI/CD)
結(jié)合Jenkins,通過(guò) Docker 加速應(yīng)用管道自動(dòng)化和應(yīng)用部署眶明,交付速度了有很大程度的提高。
IT 基礎(chǔ)設(shè)施優(yōu)化
Docker 和容器有助于優(yōu)化 IT 基礎(chǔ)設(shè)施的利用率和成本筐高。優(yōu)化不僅僅是指削減成本搜囱,還能確保在適當(dāng)?shù)臅r(shí)間有效地使用適當(dāng)?shù)馁Y源丑瞧。
容器化傳統(tǒng)應(yīng)用
容器不僅能提高現(xiàn)有應(yīng)用的安全性和可移植性,還能節(jié)約成本蜀肘。