日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

docker能用来干什么的

發(fā)布時(shí)間:2023/12/15 综合教程 49 生活家
生活随笔 收集整理的這篇文章主要介紹了 docker能用来干什么的 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文操作環(huán)境:linux5.9.8系統(tǒng)、docker-1.13.1版、Dell G3電腦。

docker能用來干什么的?

Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。

為什么要用Docker?

作為一種新興的虛擬化方式,Docker 跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢。

首先,Docker 容器的啟動(dòng)可以在秒級實(shí)現(xiàn),這相比傳統(tǒng)的虛擬機(jī)方式要快得多。 其次,Docker 對系統(tǒng)資源的利用率很高,一臺(tái)主機(jī)上可以同時(shí)運(yùn)行數(shù)千個(gè) Docker 容器。

容器除了運(yùn)行其中應(yīng)用外,基本不消耗額外的系統(tǒng)資源,使得應(yīng)用的性能很高,同時(shí)系統(tǒng)的開銷盡量小。傳統(tǒng)虛擬機(jī)方式運(yùn)行 10 個(gè)不同的應(yīng)用就要起 10 個(gè)虛擬機(jī),而Docker 只需要啟動(dòng) 10 個(gè)隔離的應(yīng)用即可。

具體說來,Docker 在如下幾個(gè)方面具有較大的優(yōu)勢。

  • 更快速的交付和部署

對開發(fā)和運(yùn)維(devop)人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運(yùn)行。

開發(fā)者可以使用一個(gè)標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)容器,開發(fā)完成之后,運(yùn)維人員可以直接使用這個(gè)容器來部署代碼。 Docker 可以快速創(chuàng)建容器,快速迭代應(yīng)用程序,并讓整個(gè)過程全程可見,使團(tuán)隊(duì)中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的。 Docker 容器很輕很快!容器的啟動(dòng)時(shí)間是秒級的,大量地節(jié)約開發(fā)、測試、部署的時(shí)間。

  • 更高效的虛擬化

Docker 容器的運(yùn)行不需要額外的 hypervisor 支持,它是內(nèi)核級的虛擬化,因此可以實(shí)現(xiàn)更高的性能和效率。

  • 更輕松的遷移和擴(kuò)展

Docker 容器幾乎可以在任意的平臺(tái)上運(yùn)行,包括物理機(jī)、虛擬機(jī)、公有云、私有云、個(gè)人電腦、服務(wù)器等。 這種兼容性可以讓用戶把一個(gè)應(yīng)用程序從一個(gè)平臺(tái)直接遷移到另外一個(gè)。

  • 更簡單的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發(fā)和更新,從而實(shí)現(xiàn)自動(dòng)化并且高效的管理。

Docker 的九個(gè)常用應(yīng)用場景

1. 本地依賴(Local Dependency)

你需要在本地系統(tǒng)快速嘗試 Magento,或者為一個(gè)項(xiàng)目使用 MySQL?還是希望嘗試大部分開源項(xiàng)目?那就使用 Docker 吧,它將幫你節(jié)省大量時(shí)間。Docker 能提升開發(fā)者的開發(fā)效率,讓我們快速搭建開發(fā)環(huán)境。

開發(fā)環(huán)境的機(jī)器通常內(nèi)存比較小,此前使用虛擬的時(shí)候,經(jīng)常需要為開發(fā)環(huán)境的機(jī)器加內(nèi)存,而通過 Docker 可以輕易的讓幾十個(gè)服務(wù)在 Docker 中跑起來。

2. 搭建環(huán)境(Build Environment)

如果你希望構(gòu)建源碼,但發(fā)現(xiàn)沒有準(zhǔn)備好合適的環(huán)境。那么使用 Docker 是一個(gè)值得考慮的方案。畢竟如果使用傳統(tǒng)的方法一個(gè)一個(gè)地安裝軟件,一大堆軟件安裝下來確實(shí)十分費(fèi)時(shí)間,使用容器技術(shù)省時(shí)省力,何樂而不為?

它能讓你將運(yùn)行環(huán)境和配置放在代碼中然后部署,同一個(gè) Docker 的配置可以在不同的環(huán)境中使用,這樣就降低了硬件要求和應(yīng)用環(huán)境之間耦合度。這里有一個(gè)值得一看的例子: docker golang builder。

3. 微服務(wù)(Microservices)

你在使用微服務(wù)嗎?微服務(wù)架構(gòu) —— 將一個(gè)整體式的應(yīng)用拆分成松耦合的單個(gè)服務(wù)。

那不妨考慮一下 Docker,你可以將每個(gè)服務(wù)打包為一個(gè) docker 鏡像并使用 docker-compose 來模擬生產(chǎn)環(huán)境(checkout docker networks)。最開始實(shí)踐的時(shí)候可能會(huì)比較費(fèi)時(shí)費(fèi)力,但長遠(yuǎn)地來看,最終將產(chǎn)生巨大的生產(chǎn)力。

4. 自動(dòng)測試(Automated testing)

試想這樣一個(gè)問題,如何編寫自動(dòng)化的集成測試用例,這些測試用例無需花很長時(shí)間來開始運(yùn)行,使用者也可輕松管理。

這里不是指在 Docker 中運(yùn)行測試用例,而是將測試用例與鏡像緊密運(yùn)行在一起。當(dāng)你針對一個(gè) docker 鏡像編寫測試用例時(shí)會(huì)有一個(gè)很大的優(yōu)勢。下面簡單介紹一下我的測試流程:運(yùn)行兩個(gè) docker 鏡像(app + db),在 MySQL 啟動(dòng)時(shí)加載數(shù)據(jù),并在 app docker 上使用 API。

5. 部署過程(Deployment process)

你可以使用 docker 鏡像進(jìn)行自我部署。許多主流的主機(jī)提供商都支持托管 docker,如果你擁有一個(gè)具有 shell 訪問權(quán)限的專用節(jié)點(diǎn)/vm,那么事情將變得更容易。只需要設(shè)置好 docker,并在你想要的端口上運(yùn)行你的鏡像即可。

6. 持續(xù)部署(Continuous Deployment)

都說 Docker 天生適合持續(xù)集成/持續(xù)部署,在部署中使用 Docker,持續(xù)部署將變得非常簡單,并會(huì)在進(jìn)入新的鏡像后重新開始。

關(guān)于這個(gè)部分的自動(dòng)化工作,現(xiàn)在已經(jīng)有許多方案以供選擇,Kubernetes 就是一個(gè)耳熟能詳?shù)拿帧ubernetes是容器集群管理系統(tǒng),是一個(gè)開源的平臺(tái),可以實(shí)現(xiàn)容器集群的自動(dòng)化部署、自動(dòng)擴(kuò)縮容、維護(hù)等功能。

7. 多租戶環(huán)境(Multi-tenancy)

Docker 有意思的一個(gè)使用場景是在多租戶的應(yīng)用中,它可以避免關(guān)鍵應(yīng)用的重寫。如果你將應(yīng)用程序服務(wù)公開給多個(gè)租戶(租戶指一組用戶,例如組織),使用單租戶方案設(shè)計(jì)的應(yīng)用程序如果用上了 sub-domain + docker 可以快速獲得提供多租戶的服務(wù)。

關(guān)于這個(gè)場景的一個(gè)例子是為物聯(lián)網(wǎng)的應(yīng)用開發(fā)一個(gè)快速、易用的多租戶環(huán)境。這種多租戶的基本代碼非常復(fù)雜,很難處理,重新規(guī)劃這樣一個(gè)應(yīng)用不但消耗時(shí)間,也浪費(fèi)金錢。使用 Docker,可以為每一個(gè)租戶的應(yīng)用層的多個(gè)實(shí)例創(chuàng)建隔離的環(huán)境,這不僅簡單而且成本低廉,當(dāng)然這一切得益于 Docker 環(huán)境的啟動(dòng)速度和其高效的 diff 命令。

8. 來自一臺(tái)機(jī)器的多個(gè) APP(Multiple apps from one machine)

這與上面提到的微服務(wù)有些聯(lián)系,但即使你沒有使用微服務(wù),只是提供服務(wù),Docker 仍可以很好地管理單個(gè)機(jī)器上的所有服務(wù)。你應(yīng)該使用文件夾掛載來為每個(gè)基于數(shù)據(jù)的 docker 鏡像保留數(shù)據(jù)。

9. 擴(kuò)容 QPS(Scaling QPS)

Docker 通過創(chuàng)建另一個(gè)容器來幫助你輕松地進(jìn)行水平擴(kuò)展。如果遇到巨大的高峰流量,Docker 可以幫助你解決問題 —— 只需添加更多的機(jī)器并增加負(fù)載均衡器背后運(yùn)行的容器數(shù)量。

還有文章沒提到的關(guān)于 Docker 的應(yīng)用場景?歡迎你和大家一起分享~

本文最初發(fā)表在oschina,文章內(nèi)容屬作者個(gè)人觀點(diǎn),不代表本站立場。

推薦學(xué)習(xí):《docker視頻教程》

以上就是docker能用來干什么的的詳細(xì)內(nèi)容,更多請關(guān)注風(fēng)君子博客其它相關(guān)文章!

總結(jié)

以上是生活随笔為你收集整理的docker能用来干什么的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。