docker能用來做的事情有:1、可以快速搭建開發(fā)環(huán)境;2、可以將運(yùn)行環(huán)境和配置放在程式碼中並部署;3、可以使用docker-compose來模擬生產(chǎn)環(huán)境; 4、進(jìn)行自動測試;5、使用docker映像進(jìn)行自我部署等等。
本文操作環(huán)境:linux5.9.8系統(tǒng)、docker-1.13.1版、Dell G3電腦。
docker能用來幹嘛的?
Docker 是一個開源的應(yīng)用程式容器引擎,讓開發(fā)者可以打包他們的應(yīng)用程式以及依賴套件到一個可移植的映像中,然後發(fā)佈到任何流行的?Linux或Windows作業(yè)系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,彼此之間不會有任何介面。
為什麼要用Docker?
作為一種新興的虛擬化方式,Docker 跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢。
首先,Docker 容器的啟動可以在秒級實(shí)現(xiàn),這相比傳統(tǒng)的虛擬機(jī)器方式要快得多。其次,Docker 對系統(tǒng)資源的使用率很高,一臺主機(jī)上可以同時運(yùn)行數(shù)千個 Docker 容器。
容器除了運(yùn)作其中應(yīng)用程式外,基本上不消耗額外的系統(tǒng)資源,使得應(yīng)用的效能很高,同時系統(tǒng)的開銷盡量小。傳統(tǒng)虛擬機(jī)方式運(yùn)行 10 個不同的應(yīng)用程式就要起 10 個虛擬機(jī),而Docker 只需要啟動 10 個隔離的應(yīng)用機(jī)。
具體說來,Docker 在下列幾個方面具有較大的優(yōu)勢。
更快速的交付和部署
對開發(fā)和維運(yùn)(devop)人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運(yùn)作。
開發(fā)者可以使用一個標(biāo)準(zhǔn)的映像來建構(gòu)一套開發(fā)容器,開發(fā)完成之後,維運(yùn)人員可以直接使用這個容器來部署程式碼。 Docker 可以快速建立容器,快速迭代應(yīng)用程序,並讓整個流程全程可見,使團(tuán)隊(duì)中的其他成員更容易理解應(yīng)用程式是如何建立和工作的。 Docker 容器很輕很快!容器的啟動時間是秒級的,大量地節(jié)省開發(fā)、測試、部署的時間。
更有效率的虛擬化
Docker 容器的運(yùn)作不需要額外的hypervisor 支持,它是核心級的虛擬化,因此可以實(shí)現(xiàn)更高的性能和效率。
更輕鬆的遷移和擴(kuò)展
Docker 容器幾乎可以在任意的平臺上運(yùn)行,包括實(shí)體機(jī)器、虛擬機(jī)器、公有雲(yún)、私有雲(yún)、個人電腦、伺服器等。這種相容性可以讓使用者把一個應(yīng)用程式從一個平臺直接遷移到另外一個。
更簡單的管理
使用 Docker,只需要小小的修改,就可以取代以往大量的更新工作。所有的修改都以增量的方式被分發(fā)和更新,從而實(shí)現(xiàn)自動化並且有效率的管理。
Docker 的九個常用應(yīng)用程式場景
1. 本地依賴(Local Dependency)
你需要在本機(jī)系統(tǒng)快速嘗試Magento,或是為一個專案使用MySQL?還是希望嘗試大部分開源專案?那就使用 Docker 吧,它將幫助你節(jié)省大量時間。 Docker 能提升開發(fā)者的開發(fā)效率,讓我們快速建置開發(fā)環(huán)境。
開發(fā)環(huán)境的機(jī)器通常內(nèi)存比較小,此前使用虛擬的時候,經(jīng)常需要為開發(fā)環(huán)境的機(jī)器加內(nèi)存,而通過 Docker 可以輕易的讓幾十個服務(wù)在 Docker 中跑起來。
2. 建造環(huán)境(Build Environment)
如果你希望建立原始碼,但發(fā)現(xiàn)沒有準(zhǔn)備好合適的環(huán)境。那麼使用 Docker 是一個值得考慮的方案。畢竟如果使用傳統(tǒng)的方法一個接一個地安裝軟體,一大堆軟體安裝下來確實(shí)十分費(fèi)時,使用容器技術(shù)省時省力,何樂而不為?
它能讓你將運(yùn)行環(huán)境和配置放在程式碼中然後部署,同一個 Docker 的配置可以在不同的環(huán)境中使用,這樣就降低了硬體需求和應(yīng)用環(huán)境之間耦合度。這裡有一個值得一看的例子: docker golang builder。
3. 微服務(wù)(Microservices)
你在使用微服務(wù)嗎?微服務(wù)架構(gòu) —— 將一個整體式的應(yīng)用程式拆分成鬆散耦合的單一服務(wù)。
那不妨考慮 Docker,你可以將每個服務(wù)打包為一個 docker 映像並使用 docker-compose 來模擬生產(chǎn)環(huán)境(checkout docker networks)。最開始實(shí)踐的時候可能會比較費(fèi)時費(fèi)力,但長遠(yuǎn)來看,最終將產(chǎn)生巨大的生產(chǎn)力。
4. 自動測試(Automated testing)
試想這樣一個問題,如何編寫自動化的整合測試案例,這些測試用例無需花很長時間來開始運(yùn)行,用戶也可輕鬆管理。
這裡不是指在 Docker 中執(zhí)行測試用例,而是將測試用例與映像緊密運(yùn)行在一起。當(dāng)你針對一個 docker 映像編寫測試案例時會有一個很大的優(yōu)勢。以下簡單介紹一下我的測試流程:執(zhí)行兩個 docker 映像(app db),在 MySQL 啟動時載入數(shù)據(jù),並在 app docker 上使用 API。
5. 部署過程(Deployment process)
你可以使用 docker 映像進(jìn)行自我部署。許多主流的主機(jī)提供者都支援託管 docker,如果你擁有一個具有 shell 存取權(quán)限的專用節(jié)點(diǎn)/vm,那麼事情將變得更容易。只需要設(shè)定好 docker,並在你想要的連接埠上執(zhí)行你的映像即可。
6. 持續(xù)部署(Continuous Deployment)
都說Docker 天生適合持續(xù)整合/持續(xù)部署,在部署中使用Docker,持續(xù)部署將變得非常簡單,並會在進(jìn)入新的鏡像後重新開始。
關(guān)於這個部分的自動化工作,現(xiàn)在已經(jīng)有許多方案以供選擇,Kubernetes 就是一個耳熟能詳?shù)拿帧?Kubernetes是容器叢集管理系統(tǒng),是一個開源的平臺,可以實(shí)現(xiàn)容器叢集的自動化部署、自動擴(kuò)縮容、維護(hù)等功能。
7. 多租用戶環(huán)境(Multi-tenancy)
Docker 有趣的一個使用場景是在多租用戶的應(yīng)用程式中,它可以避免關(guān)鍵應(yīng)用的重寫。如果你將應(yīng)用程式服務(wù)公開給多個租戶(租戶指一組用戶,例如組織),使用單一租戶方案設(shè)計(jì)的應(yīng)用程式如果用上了 sub-domain docker 可以快速獲得提供多租戶的服務(wù)。
關(guān)於這個場景的一個例子是為物聯(lián)網(wǎng)的應(yīng)用開發(fā)一個快速、易用的多租戶環(huán)境。這種多租戶的基本程式碼非常複雜,很難處理,重新規(guī)劃這樣一個應(yīng)用程式不但消耗時間,也浪費(fèi)金錢。使用 Docker,可以為每個租用戶的應(yīng)用層的多個實(shí)例建立隔離的環(huán)境,這不僅簡單而且成本低廉,當(dāng)然這一切得益於 Docker 環(huán)境的啟動速度和其高效的 diff 命令。
8. 來自一臺機(jī)器的多個APP(Multiple apps from one machine)
這與上面提到的微服務(wù)有些聯(lián)繫,但即使你沒有使用微服務(wù),只是提供服務(wù),Docker 仍可以很好地管理單一機(jī)器上的所有服務(wù)。你應(yīng)該使用資料夾掛載來為每個基於資料的 docker 映像保留資料。
9. 擴(kuò)容 QPS(Scaling QPS)
Docker 透過建立另一個容器來幫助你輕鬆地進(jìn)行水平擴(kuò)展。如果遇到龐大的高峰流量,Docker 可以幫助你解決問題 —— 只需增加更多的機(jī)器並增加負(fù)載平衡器背後運(yùn)行的容器數(shù)量。
還有文章沒提到的 Docker 的應(yīng)用程式場景?歡迎你和大家一起分享~
本文最初發(fā)表在oschina,文章內(nèi)容屬作者個人觀點(diǎn),不代表本站立場。
推薦學(xué)習(xí):《docker影片教學(xué)》
以上是docker能用來幹什麼的的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

一、.NETCore的起源談到.NETCore,就不能不提它的前身.NET。當(dāng)年Java風(fēng)頭正盛,微軟也對Java青睞有加,Windows平臺上的Java虛擬機(jī)就是微軟依據(jù)JVM標(biāo)準(zhǔn)開發(fā)的,據(jù)稱是當(dāng)時性能最佳的Java虛擬機(jī)。然而,微軟有自己的小算盤,試圖將Java與Windows平臺捆綁,增加一些Windows特有的功能。 Sun公司對此不滿,導(dǎo)致雙方關(guān)係破裂,微軟隨後推出了.NET。 .NET從誕生之初就借鑒了Java的許多特性,並在語言特性和窗體開發(fā)等方面逐漸超越了Java。 Java在1.6版

要開發(fā)一個完整的PythonWeb應(yīng)用程序,應(yīng)遵循以下步驟:1.選擇合適的框架,如Django或Flask。 2.集成數(shù)據(jù)庫,使用ORM如SQLAlchemy。 3.設(shè)計(jì)前端,使用Vue或React。 4.進(jìn)行測試,使用pytest或unittest。 5.部署應(yīng)用,使用Docker和平臺如Heroku或AWS。通過這些步驟,可以構(gòu)建出功能強(qiáng)大且高效的Web應(yīng)用。

查看Docker容器內(nèi)部進(jìn)程信息有三種方法:1.使用dockertop命令,可以列出容器內(nèi)所有進(jìn)程,顯示PID、用戶、命令等信息;2.使用dockerexec進(jìn)入容器內(nèi)部,再用ps或top命令查看詳細(xì)進(jìn)程信息;3.使用dockerstats命令,實(shí)時顯示容器資源使用情況,結(jié)合dockertop可全面了解容器性能。

在Ubuntu上部署PyTorch應(yīng)用可以通過以下步驟完成:1.安裝Python和pip首先,確保你的系統(tǒng)上已經(jīng)安裝了Python和pip。你可以使用以下命令來安裝它們:sudoaptupdatesudoaptinstallpython3python3-pip2.創(chuàng)建虛擬環(huán)境(可選)為了隔離你的項(xiàng)目環(huán)境,建議創(chuàng)建一個虛擬環(huán)境:python3-mvenvmyenvsourcemyenv/bin/activat

在Debian上部署和調(diào)優(yōu)Jenkins是一個涉及多個步驟的過程,包括安裝、配置、插件管理和性能優(yōu)化。以下是一個詳細(xì)的指南,幫助你實(shí)現(xiàn)高效的Jenkins部署。安裝Jenkins首先,確保你的系統(tǒng)已經(jīng)安裝了Java環(huán)境。 Jenkins需要Java運(yùn)行時環(huán)境(JRE)才能正常運(yùn)行。 sudoaptupdatesudoaptinstallopenjdk-11-jdk驗(yàn)證Java安裝成功:java-version接下來,添加J

批量停止Docker容器的高效方法包括使用基本命令和工具。 1.使用dockerstop$(dockerps-q)命令,並可調(diào)整超時時間,如dockerstop-t30$(dockerps-q)。 2.利用dockerps的過濾選項(xiàng),如dockerstop$(dockerps-q--filter"label=app=web")。 3.使用DockerCompose命令docker-composedown。 4.編寫腳本按順序停止容器,如停止db、app和web容器。

比較不同Docker鏡像版本差異的方法有兩種:1.使用dockerdiff命令查看容器文件系統(tǒng)變化;2.使用dockerhistory命令查看鏡像構(gòu)建層級差異。這些方法有助於理解和優(yōu)化鏡像版本管理。

在Debian系統(tǒng)上實(shí)現(xiàn)Docker的自動化部署可以通過多樣的方法來完成,以下是詳細(xì)的步驟指南:1.安裝Docker首先,確保你的Debian系統(tǒng)保持最新狀態(tài):sudoaptupdatesudoaptupgrade-y接著,安裝必要的軟件包以支持APT通過HTTPS訪問倉庫:sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-common-y導(dǎo)入Docker的官方GPG密鑰:curl-
