容器化網(wǎng)頁應(yīng)用:用Docker為網(wǎng)頁開發(fā)者解決問題

責(zé)任編輯:editor005

作者:錢巧能編譯

2015-07-06 14:18:03

摘自:dockerone

在本地開發(fā)中使用Docker容器,可以極大提供軟件開發(fā)效率,避免最后時刻因運(yùn)行系統(tǒng)配置的不同而帶來的麻煩。Docker容器極具可移植性及靈活性,作為一個網(wǎng)頁開發(fā)工程師,你可以借助docker讓你的開發(fā)環(huán)境更加強(qiáng)勁。

如果你是網(wǎng)頁工程師,很可能你對Docker已經(jīng)有所耳聞,并對它的近況略知一二。Docker現(xiàn)在炙手可熱,筆者認(rèn)為是時候開始考慮把你的網(wǎng)頁應(yīng)用移植到Docker中去了。但是Docker的原理跟網(wǎng)頁開發(fā)中的技術(shù)相差甚遠(yuǎn),理解Docker并不是特別容易。所以本文目的就是幫助網(wǎng)頁工程師們認(rèn)識什么是Docker,以為它在網(wǎng)頁開發(fā)中能幫助解決哪些實際問題。

容器化網(wǎng)頁應(yīng)用:用Docker為網(wǎng)頁開發(fā)者解決問題

  什么是Docker?

Docker是一個開源的工具,它能夠讓容器互不干擾地運(yùn)行在Linux上,并且可以快速地在容器內(nèi)部署應(yīng)用。Docker可以讓任何應(yīng)用運(yùn)行在可移植的,隔離的容器上。開發(fā)人員開發(fā)和測試時在個人電腦上使用的容器可以無縫運(yùn)行在如虛擬機(jī),云等其他正式的運(yùn)維環(huán)境下。

容器化網(wǎng)頁應(yīng)用:用Docker為網(wǎng)頁開發(fā)者解決問題

使用容器,你可以靈活的部署你的網(wǎng)頁應(yīng)用。你可以把你的應(yīng)用運(yùn)行在不同的容器上,比如讓MySQL,Apache和WordPress各運(yùn)行在一個容器上,也可以把這三個應(yīng)用運(yùn)行在一個容器上。一個容器上運(yùn)行幾個應(yīng)用,因需而定,沒有絕對的好與壞,對與錯。

Docker 容器 VS 虛擬機(jī)

把應(yīng)用從底層linux操作系統(tǒng)中隔離出來,是個很奇妙的事情。雖然容器不能替代虛擬機(jī),但是比較容器與虛擬機(jī)的異同,還是很有意義的。虛擬機(jī)是虛擬一個完整的操作系統(tǒng),包括獨立的內(nèi)存管理,設(shè)備驅(qū)動等。相反,容器則是共享主機(jī)的這些資源,因此容器是比較容易管理的。

容器 &容器即服務(wù)

容器其實已經(jīng)存在了一段時間了,但是它一直都沒有成為行業(yè)標(biāo)準(zhǔn)。Docker的出現(xiàn),使之成為了可能,因為Docker容易學(xué)習(xí)和使用,并且提供廣泛的技術(shù)支持。

容器化網(wǎng)頁應(yīng)用:用Docker為網(wǎng)頁開發(fā)者解決問題

Docker是基于LXC(Linux容器)實現(xiàn)的,但是它并不是要替代LXC的。相反,Docker則是基于LXC提供一些高級的功能,比如版本化應(yīng)用,跨主機(jī)部署可遷移的應(yīng)用。如果您想了解更多關(guān)于Docker與LXC的關(guān)系,請參考stackoverflow thread。

容器即服務(wù)的業(yè)務(wù)發(fā)展很迅速。2015年初,Docker公司發(fā)布如下所示的信息圖,圖中有關(guān)于Docker容器鏡像下載量以及運(yùn)行在Docker容器上的應(yīng)用數(shù)量等信息。

Docker在網(wǎng)頁開發(fā)中的實際用例

Docker從一開始就被設(shè)計成是可以在不同的場景下應(yīng)用的。除了docker.com上的那些用例,我們還可以看看下面的這些用例,無不借助于Docker所提供的強(qiáng)大且一致的環(huán)境。

[page]

強(qiáng)大的Docker社區(qū)

Docker一個顯著的優(yōu)點就是它提供的容器,下載下來就能使用。而且隨著社區(qū)人員的快速增長,越來越多為容器被發(fā)布出來。這些容器里包含了很多當(dāng)前流行的應(yīng)用如MySQL和WordPress,大家都可以拿來就用。

如果你想要跑一個WordPress的應(yīng)用,你可以從Docker Hub上下載鏡像,然后簡單的跑如下命令就可以了

docker run –name some-wordpress –link some-mysql:mysql -d wordpress

對本地開發(fā)的強(qiáng)大支持

作為一個網(wǎng)頁程序員,你很有可能是在自己的電腦上開發(fā)代碼,然后再發(fā)布到運(yùn)維系統(tǒng)上。使用Docker可以讓你開發(fā)環(huán)境和最終的上線環(huán)境保持一致,避免因為上線系統(tǒng)配置的不同還要在最后時刻修改代碼的尷尬。

在本地開發(fā)中使用Docker容器,可以極大提供軟件開發(fā)效率,避免最后時刻因運(yùn)行系統(tǒng)配置的不同而帶來的麻煩。

快速部署

在過去的幾十年里,從硬件部署的幾天到虛機(jī)部署幾分鐘再到容器部署的幾秒鐘,快速部署一直在發(fā)生著日新月異的變化。

使用Docker,你可以在短短幾秒之內(nèi)就能讓應(yīng)用啟動并運(yùn)行起來。因為創(chuàng)建容器不需要重新啟動操作系統(tǒng),所以使用容器運(yùn)行應(yīng)用的確節(jié)省時間。

容器化網(wǎng)頁應(yīng)用:用Docker為網(wǎng)頁開發(fā)者解決問題

  應(yīng)用隔離所帶來的安全沙盒化

在Docker中,一個容器其實是跑了一個應(yīng)用或者一個進(jìn)程。每個容器都有自己單獨的運(yùn)行時環(huán)境,它有自己獨立的進(jìn)程空間,而且能夠接收發(fā)送到容器的網(wǎng)絡(luò)數(shù)據(jù)。

如果你需要安裝不同版本的python或者其他軟件庫,Docker 容器是你應(yīng)該考慮的。你可以在不同的容器上安裝不同版本的軟件庫,這樣你就可以避免不同版本的軟件庫安裝在同一主機(jī)上所帶來的麻煩。

容器帶來的安全性

把不同應(yīng)用運(yùn)行在不同的容器上,可以提高系統(tǒng)的安全性。因為每個容器只能訪問其他容器顯式暴露出來的端口和文件。 而且容器可以再更高層次上對于系統(tǒng)上存儲什么數(shù)據(jù),安裝什么軟件進(jìn)行控制。一些運(yùn)行在一個容器上可疑腳本是不會影響其他容器的。

更新是一個重要的安全隱患,把應(yīng)用運(yùn)行在容器上可以讓更新過程容易一些。

簡化測試

用Docker容器來搭建測試環(huán)境是非常容易的。想想那些不同的框架,數(shù)據(jù)庫以及不同版本的python,在虛擬環(huán)境下測試時非常具有挑戰(zhàn)的。

使用Docker容器進(jìn)行測試,把不同版本的應(yīng)用運(yùn)行在不同的容器上,可以極大地加快測試速度。

容器化網(wǎng)頁應(yīng)用:用Docker為網(wǎng)頁開發(fā)者解決問題

  簡單配置

Docker容器越來越廣泛的被應(yīng)用有著許多原因,但是簡單快速部署絕對是其中重要的一個。把應(yīng)用運(yùn)行在虛擬機(jī)上,可以把應(yīng)用所需的配置從基礎(chǔ)設(shè)施里隔離出來。Docker也提供相同的功能,卻沒有虛擬機(jī)那樣大的開銷。不過Docker并不能替代虛擬機(jī),它們有各自的使用領(lǐng)域。

容器化你的網(wǎng)頁應(yīng)用

容器化你的網(wǎng)頁應(yīng)用不僅可以加快部署,還可以讓部署變得更容易。Docker容器極具可移植性及靈活性,作為一個網(wǎng)頁開發(fā)工程師,你可以借助docker讓你的開發(fā)環(huán)境更加強(qiáng)勁。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號