溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

用Docker能做什么

發(fā)布時間:2021-12-14 10:17:05 來源:億速云 閱讀:355 作者:iii 欄目:云計算

這篇文章主要介紹“用Docker能做什么”,在日常操作中,相信很多人在用Docker能做什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”用Docker能做什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1.0 容器的簡介

容器與管理程序虛擬化的不同點(diǎn):

  • 管理程序虛擬化通過中間層將一臺或多臺獨(dú)立的機(jī)器虛擬運(yùn)行于物理硬件之上;

  • 容器則是直接運(yùn)行在操作系統(tǒng)內(nèi)核之上的用戶空間。因此,容器虛擬化也被稱為“操作系統(tǒng)級虛擬化”。

由于客居于操作系統(tǒng),容器只能運(yùn)行與底層宿主機(jī)相同或相似的操作系統(tǒng)。

和傳統(tǒng)的虛擬化以及半虛擬化相比,容器運(yùn)行不需要模擬層和管理層,而是使用操作系統(tǒng)的系統(tǒng)調(diào)用接口,降低了開銷。

當(dāng)然容器也有一些局限性,比如它被一些人認(rèn)為是不安全的、它的技術(shù)比較復(fù)雜、不易安裝和自動化。

1.1 Docker簡介

Docker是一個能夠把開發(fā)的應(yīng)用程序自動部署到容器的開源引擎。它的目標(biāo)是提供一個輕量、快速的環(huán)境,能夠運(yùn)行開發(fā)者的程序,并方便高效的將程序從開發(fā)者的筆記本部署到測試環(huán)境,然后再部署到生產(chǎn)環(huán)境。

Docker希望為程序開發(fā)提供以下功能:

  1. 提供一個簡單、輕量的建模方式。用幾分鐘可以把自己的程序Docker化,并用“寫時復(fù)制”模型,使修改應(yīng)用程序也非常迅速。創(chuàng)建容器來運(yùn)行應(yīng)用程序也很快速,并且一臺宿主機(jī)可以運(yùn)行很多容器,使用戶可以盡可能充分的利用系統(tǒng)資源。

  2. 職責(zé)的邏輯分離。使用Docker,開發(fā)人員只需要關(guān)系容器中運(yùn)行的應(yīng)用程序,而運(yùn)維人員只需要關(guān)系如何管理容器。同時加強(qiáng)開發(fā)人員寫代碼的開發(fā)環(huán)境與應(yīng)用程序要部署的生產(chǎn)環(huán)境的一致性。

  3. 快速、高效的開發(fā)生命周期。Docker的目的之一就是縮短代碼從開發(fā)、測試到部署、上線運(yùn)行的周期,讓應(yīng)用程序具有可移植性、易于構(gòu)建,并易于協(xié)作。

  4. 鼓勵使用面向服務(wù)的架構(gòu)。Docker推薦單個容器只運(yùn)行一個應(yīng)用程序或進(jìn)程,這樣就能形成一個分布式的應(yīng)用程序模型。在這種模型下,應(yīng)用程序或服務(wù)都可以表示為一系列內(nèi)部互聯(lián)的容器,從而使分布式部署應(yīng)用程序,擴(kuò)展或調(diào)試應(yīng)用程序都變得簡單。

1.2 Docker組件

  1. Docker客戶端和服務(wù)器。Docker客戶端只需向Docker服務(wù)器或守護(hù)進(jìn)程發(fā)出請求,服務(wù)器或守護(hù)進(jìn)程完成所有工作并返回結(jié)果。Docker提供了一個命令行工具docker以及一套RESTful API??梢栽谕慌_宿主機(jī)上運(yùn)行守護(hù)進(jìn)程和客戶端,也可以從本地的Docker客戶端連接到運(yùn)行在另一臺宿主機(jī)上的遠(yuǎn)程Docker守護(hù)進(jìn)程。

  2. Docker鏡像。鏡像是構(gòu)建Docker世紀(jì)的基石。用戶基于鏡像來運(yùn)行自己的容器。鏡像也是Docker生命周期中的“構(gòu)建”部分。鏡像是基于Union文件系統(tǒng)的一種層式的結(jié)構(gòu),由一系列指令一步步構(gòu)建出來。也可以把鏡像當(dāng)做容器的“源代碼”。鏡像體積小,便攜,易于分享、存儲和更新??梢允褂靡延械溺R像,也可以構(gòu)建自己的鏡像。

  3. Registry。Docker用Registry來保存用戶構(gòu)建的鏡像。Registry分為公共和私有兩種。Docker公司運(yùn)營的公共Registry叫做Docker Hub。用戶可以在其上注冊賬號,分享并保存自己的鏡像。Docker Hub上的鏡像包括Nginx Web Server的鏡像、MySQL數(shù)據(jù)庫的鏡像等等。也可以假設(shè)自己的私有Registry。

  4. 容器。Docker可以幫助構(gòu)建和部署容器,只要把自己的應(yīng)用程序或者服務(wù)打包放進(jìn)容器即可。容器是基于鏡像啟動起來的,容器中可以運(yùn)行一個或多個進(jìn)程??梢哉J(rèn)為,鏡像是Docker生命周期中的構(gòu)建或者打包階段,而容器使啟動或執(zhí)行階段??偨Y(jié)起來,Docker容器就是:一個鏡像格式,一系列標(biāo)準(zhǔn)的操作和一個執(zhí)行環(huán)境。

1.3 我們能用Docker做什么

  • 加速本地開發(fā)和構(gòu)建流程,使其更加高效、更加輕量化。本地開發(fā)人員可以構(gòu)建、運(yùn)行并分享Docker容器。容器可以在開發(fā)環(huán)境中構(gòu)建,然后輕松的提交到測試環(huán)境中,并最終進(jìn)入生產(chǎn)環(huán)境;

  • 能夠讓獨(dú)立服務(wù)或者應(yīng)用程序在不同的環(huán)境中得到相同的運(yùn)行結(jié)果。這一點(diǎn)在面向服務(wù)的架構(gòu)和重度依賴微型服務(wù)的部署中尤其實(shí)用;

  • 用Docker創(chuàng)建隔離的環(huán)境來進(jìn)行測試。例如,用Jenkins CI這樣的持續(xù)集成工具啟動一個用于測試的容器;

  • Docker可以讓開發(fā)者先在本機(jī)上構(gòu)建一個復(fù)雜的程序或者架構(gòu)來進(jìn)行測試,而不是開始就在生產(chǎn)環(huán)境部署、測試;

  • 構(gòu)建一個多用戶的平臺即服務(wù)基礎(chǔ)設(shè)施;

  • 為開發(fā)、測試提供一個輕量級的獨(dú)立沙盒環(huán)境,或者將獨(dú)立的沙盒環(huán)境用于技術(shù)教學(xué);

  • 提供軟件即服務(wù)應(yīng)用程序,如Memcached即服務(wù);

  • 高性能、超大規(guī)模的宿主機(jī)部署。

到此,關(guān)于“用Docker能做什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI