今天小編就為大家?guī)?lái)一篇關(guān)于php docker的原理及作用的文章。小編覺得挺不錯(cuò)的,為此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
合陽(yáng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
一句話總結(jié):
Docker就是集裝箱原理:比如隔離:Docker 提供了一組應(yīng)用打包、傳輸和部署的方法,以便你能更好地在容器內(nèi)運(yùn)行任何應(yīng)用。Docker 是一個(gè)便攜的應(yīng)用容器
Docker快速整出各種環(huán)境:比如Node.js 網(wǎng)站服務(wù)器,API 服務(wù)器,數(shù)據(jù)庫(kù)等
1、docker的好處?
1-1、快速構(gòu)建隔離環(huán)境:不同的應(yīng)用程序可能會(huì)有不同的應(yīng)用環(huán)境,比如.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個(gè)服務(wù)器上就要調(diào)試很久,而且很麻煩,還會(huì)造成一些沖突。比如IIS和Apache訪問端口沖突。這個(gè)時(shí)候你就要隔離.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站。常規(guī)來(lái)講,我們可以在服務(wù)器上創(chuàng)建不同的虛擬機(jī)在不同的虛擬機(jī)上放置不同的應(yīng)用,但是虛擬機(jī)開銷比較高。docker可以實(shí)現(xiàn)虛擬機(jī)隔離應(yīng)用環(huán)境的功能,并且開銷比虛擬機(jī)小,小就意味著省錢了。
1-2、封裝開發(fā)環(huán)境,解決環(huán)境版本問題:你開發(fā)軟件的時(shí)候用的是Ubuntu,但是運(yùn)維管理的都是centos,運(yùn)維在把你的軟件從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境的時(shí)候就會(huì)遇到一些Ubuntu轉(zhuǎn)centos的問題,比如:有個(gè)特殊版本的數(shù)據(jù)庫(kù),只有Ubuntu支持,centos不支持,在轉(zhuǎn)移的過(guò)程當(dāng)中運(yùn)維就得想辦法解決這樣的問題。這時(shí)候要是有docker你就可以把開發(fā)環(huán)境直接封裝轉(zhuǎn)移給運(yùn)維,運(yùn)維直接部署你給他的docker就可以了。而且部署速度快。
1-3、內(nèi)存利用:在服務(wù)器負(fù)載方面,如果你單獨(dú)開一個(gè)虛擬機(jī),那么虛擬機(jī)會(huì)占用空閑內(nèi)存的,docker部署的話,這些內(nèi)存就會(huì)利用起來(lái)。
2、docker是什么?docker可以做什么?
Docker的思想來(lái)自于集裝箱,集裝箱解決了什么問題?在一艘大船上,可以把貨物規(guī)整的擺放起來(lái)。并且各種各樣的貨物被集裝箱標(biāo)準(zhǔn)化了,集裝箱和集裝箱之間不會(huì)互相影響。那么我就不需要專門運(yùn)送水果的船和專門運(yùn)送化學(xué)品的船了。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運(yùn)走。
docker就是類似的理念?,F(xiàn)在都流行云計(jì)算了,云計(jì)算就好比大貨輪。docker就是集裝箱。
2-1.不同的應(yīng)用程序可能會(huì)有不同的應(yīng)用環(huán)境,比如.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個(gè)服務(wù)器上就要調(diào)試很久,而且很麻煩,還會(huì)造成一些沖突。比如IIS和Apache訪問端口沖突。這個(gè)時(shí)候你就要隔離.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站。常規(guī)來(lái)講,我們可以在服務(wù)器上創(chuàng)建不同的虛擬機(jī)在不同的虛擬機(jī)上放置不同的應(yīng)用,但是虛擬機(jī)開銷比較高。docker可以實(shí)現(xiàn)虛擬機(jī)隔離應(yīng)用環(huán)境的功能,并且開銷比虛擬機(jī)小,小就意味著省錢了。
2-2.你開發(fā)軟件的時(shí)候用的是Ubuntu,但是運(yùn)維管理的都是centos,運(yùn)維在把你的軟件從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境的時(shí)候就會(huì)遇到一些Ubuntu轉(zhuǎn)centos的問題,比如:有個(gè)特殊版本的數(shù)據(jù)庫(kù),只有Ubuntu支持,centos不支持,在轉(zhuǎn)移的過(guò)程當(dāng)中運(yùn)維就得想辦法解決這樣的問題。這時(shí)候要是有docker你就可以把開發(fā)環(huán)境直接封裝轉(zhuǎn)移給運(yùn)維,運(yùn)維直接部署你給他的docker就可以了。而且部署速度快。
2-3.在服務(wù)器負(fù)載方面,如果你單獨(dú)開一個(gè)虛擬機(jī),那么虛擬機(jī)會(huì)占用空閑內(nèi)存的,docker部署的話,這些內(nèi)存就會(huì)利用起來(lái)。
總之docker就是集裝箱原理。
3、開發(fā)者可以使用docker做什么?
Docker 如今贏得了許多關(guān)注,很多人覺得盛名之下其實(shí)難副,因?yàn)樗麄內(nèi)匀桓悴磺?Docker 和普通開發(fā)者到底有什么關(guān)系。許多開發(fā)者覺得 Docker 離自己很遠(yuǎn),Docker 是生產(chǎn)環(huán)境中的工具,和自己無(wú)關(guān)。我也是花了很長(zhǎng)時(shí)間才想清楚作為普通開發(fā)人員如何在自己的開發(fā)中使用 Docker。坦率地說(shuō),我仍處在學(xué)習(xí)的過(guò)程中。
這篇文章提供了一個(gè) Docker 用例列表,我希望它能更好地幫助你理解 Docker 并引發(fā)你的思考。本文只是描述 Docker 在普通開發(fā)者日常的應(yīng)用,并不提供完整的解決方案。
在介紹用例之前,我希望你能先記住這句話:“Docker 是一個(gè)便攜的應(yīng)用容器”。你可以不知道 Docker 所說(shuō)的的“便攜式容器”到底是什么意思,但是你必須清楚 Docker 在日常中能帶來(lái)非常大的效率提升。
當(dāng)你需要在容器內(nèi)運(yùn)行自己的應(yīng)用(當(dāng)然可以是任何應(yīng)用),Docker 都提供了一個(gè)基礎(chǔ)系統(tǒng)鏡像作為運(yùn)行應(yīng)用時(shí)的基礎(chǔ)系統(tǒng)。也就是說(shuō),只要是 Linux 系統(tǒng)上的應(yīng)用都可以運(yùn)行在 Docker 中。
可以在 Docker 里面運(yùn)行數(shù)據(jù)庫(kù)嗎?當(dāng)然可以。
可以在 Docker 里面運(yùn)行 Node.js 網(wǎng)站服務(wù)器嗎?當(dāng)然可以。
可以在 Docker 里面運(yùn)行 API 服務(wù)器嗎?當(dāng)然可以。
Docker 并不在乎你的應(yīng)用程序是什么、做什么,Docker 提供了一組應(yīng)用打包、傳輸和部署的方法,以便你能更好地在容器內(nèi)運(yùn)行任何應(yīng)用。
4、嘗試新軟件
對(duì)開發(fā)者而言,每天會(huì)催生出的各式各樣的新技術(shù)都需要嘗試,然而開發(fā)者卻不太可能為他們一一搭建好環(huán)境并進(jìn)行測(cè)試。時(shí)間非常寶貴,正是得益于 Docker,讓我們有可能在一條或者幾條命令內(nèi)就搭建完環(huán)境。Docker 有一個(gè)傻瓜化的獲取軟件的方法,Docker 后臺(tái)會(huì)自動(dòng)獲得環(huán)境鏡像并且運(yùn)行環(huán)境。
并不僅僅是新技術(shù)環(huán)境搭建用得到 Docker。如果你想快速在你的筆記本上運(yùn)行一個(gè) MySQL 數(shù)據(jù)庫(kù),或者一個(gè) redis 消息隊(duì)列,那么使用 Docker 便可以非常容易地做到。例如 Docker 只需要一條命令便可以運(yùn)行 MySQL 數(shù)據(jù)庫(kù):
docker run -d -p 3306:3306 tutum/mysql。
譯者注:雖然使用命令也能非??斓匕惭b MySQL 數(shù)據(jù)庫(kù),但是當(dāng)用到最新的技術(shù)或者非常復(fù)雜的技術(shù)時(shí),使用 Docker 便會(huì)是個(gè)非常好的選擇,例如 Gitlab,普通用戶大概需要一天的時(shí)間去搭建 Gitlab 平臺(tái),而 Docker 則只需要一條命令。
5、學(xué)習(xí)linux腳本
當(dāng)然這個(gè)原因看起來(lái)可能很奇怪,但是對(duì)不不熟悉 Linux 操作系統(tǒng)和 Shell 腳本的人來(lái)說(shuō),確實(shí)是一個(gè)好機(jī)會(huì)。即便本文并不是在講 Linux,Linux 的重要度仍然不言而喻。如果你用的是 Windows,那么我給你一個(gè)建議:從云主機(jī)提供商那兒租用一臺(tái)云主機(jī):我推薦使用 CoreOS 系統(tǒng)的云主機(jī)。雖然這樣并不會(huì)讓你成為專業(yè)的 Linux 運(yùn)維,但是可以讓你快速地學(xué)到 Linux 基礎(chǔ)知識(shí),愛上命令行操作,并且慢慢開始熟悉和欣賞 Linux。
6、更好的利用資源
虛擬機(jī)的粒度是“虛擬出的機(jī)器”,而 Docker 的粒度則是“被限制的應(yīng)用”,相比較而言 Docker 的內(nèi)存占用更少,更加輕量級(jí)。
對(duì)我來(lái)說(shuō)這是 Docker 的一個(gè)優(yōu)勢(shì):因?yàn)槲医?jīng)常在自己電腦中運(yùn)行多個(gè) Docker 應(yīng)用,使用 Docker 比使用虛擬機(jī)更加簡(jiǎn)單,方便,粒度更細(xì),也能持續(xù)地跟蹤容器狀態(tài)。
7、為微服務(wù)定制
如果你一直在關(guān)注科技新聞的話,那么你應(yīng)該聽說(shuō)過(guò)“微服務(wù)(Microservices)”的概念。Docker 可以很好地和微服務(wù)結(jié)合起來(lái)。從概念上來(lái)說(shuō),一個(gè)微服務(wù)便是一個(gè)提供一整套應(yīng)用程序的部分功能,Docker 便可以在開發(fā)、測(cè)試和部署過(guò)程中一直充當(dāng)微服務(wù)的容器。甚至生產(chǎn)環(huán)境也可以在 Docker 中部署微服務(wù)。
8、在云服務(wù)提供商之間移植
大多數(shù)的云主機(jī)提供商已經(jīng)全面支持 Docker。對(duì)于開發(fā)人員來(lái)說(shuō),這表示你可以很方便地切換云服務(wù)提供商,當(dāng)然也可以很方便地將你本地的開發(fā)環(huán)境移動(dòng)到云主機(jī)上,不需要本地上配置一次運(yùn)行環(huán)境、在云主機(jī)上還配置一次運(yùn)行環(huán)境。全面部署 Docker (Docker here and Docker there) 作為標(biāo)準(zhǔn)運(yùn)行環(huán)境可以極大地減輕應(yīng)用上線時(shí)的工作量和產(chǎn)生 BUG。
9、API
API 是應(yīng)用之間的粘合劑,一個(gè)合格開發(fā)者肯定使用過(guò)別人提供的 REST API,或者自己開發(fā)過(guò) REST API。需要指出的是,無(wú)論是客戶端還是 API 提供端,在開發(fā)之前都需要先定義一組公共的 API 接口,寫成文檔,然后才能進(jìn)行編碼。如果服務(wù)端和客戶端是共同開發(fā)的話,那么服務(wù)端通常會(huì)先實(shí)現(xiàn)能返回固定字符串的 API 接口,在以后的開發(fā)中再慢慢去實(shí)現(xiàn) API 的功能。
雖然有人會(huì)認(rèn)為在這里 Docker 被濫用了,完全可以用 sample.json 這種文件去實(shí)現(xiàn)虛擬 API,但是下面有個(gè)實(shí)例可以更好地解決前后端分離開發(fā)時(shí)的 API 問題。
為了更好地解釋我的意思,給大家提供一個(gè)實(shí)例:JSON Server,一個(gè)用于提供 JSON 數(shù)據(jù)的 REST API。使用過(guò)這個(gè)容器的人就會(huì)知道,既然有這么好用的 Docker JSON Server,我們沒有理由不用 Docker。
以上就是php docker的原理及作用的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!
名稱欄目:phpdocker的原理及作用
瀏覽路徑:http://aaarwkj.com/article10/ihhjgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、用戶體驗(yàn)、手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)站排名、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)