摘要:另外一個原因是企業(yè)文化是否與運動一致,只有企業(yè)支持,才能更大地發(fā)揮的價值。最后一個原因就是安全性問題,對于這一層的安全的隔離還有待改進,才能進一步得到企業(yè)的認(rèn)可。惠普劉艷凱認(rèn)為,這也是需要在下一步中改進的一方面。
前言
云計算、大數(shù)據(jù),移動技術(shù)的快速發(fā)展,加之企業(yè)業(yè)務(wù)需求的不斷變化,導(dǎo)致企業(yè)架構(gòu)要隨時更改以適合業(yè)務(wù)需求,跟上技術(shù)更新的步伐。毫無疑問,這些重?fù)?dān)都將壓在企業(yè)開發(fā)人員身上;團隊之間如何高效協(xié)調(diào),快速交付產(chǎn)品,快速部署應(yīng)用,以及滿足企業(yè)業(yè)務(wù)需求,是開發(fā)人員亟需解決的問題。Docker技術(shù)恰好可以幫助開發(fā)人員解決這些問題。
什么是Docker
Docker的英文本意是“搬運工”,在程序員的世界里,Docker搬運的是集裝箱(Container),集裝箱里裝的是任意類型的App,開發(fā)者通過Docker可以將App變成一種標(biāo)準(zhǔn)化的、可移植的、自管理的組件,可以在任何主流系統(tǒng)中開發(fā)、調(diào)試和運行。最重要的是,它不依賴于任何語言、框架或系統(tǒng)。可以說Docker是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕量級的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎(chǔ)應(yīng)用平臺。
Docker通常用于如下場景:1.web應(yīng)用的自動化打包和發(fā)布;2、自動化測試和持續(xù)集成、發(fā)布;3、在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應(yīng)用;4、從頭編譯或者擴展現(xiàn)有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環(huán)境。
為什么使用Docker
那么應(yīng)用容器長什么樣子呢,一個做好的應(yīng)用容器長得就好像一個裝好了一組特定應(yīng)用的虛擬機一樣。比如我現(xiàn)在想用MySQL那我就找個裝好MySQL的容器,運行起來,那么我就可以使用 MySQL了。
那么我直接裝個 MySQL不就好了,何必還需要這個容器這么詭異的概念?話是這么說,可是你要真裝MySQL的話可能要再裝一堆依賴庫,根據(jù)你的操作系統(tǒng)平臺和版本進行設(shè)置,有時候還要從源代碼編譯報出一堆莫名其妙的錯誤,可不是這么好裝。而且萬一你機器掛了,所有的東西都要重新來,可能還要把配置在重新弄一遍。但是有了容器,你就相當(dāng)于有了一個可以運行起來的虛擬機,只要你能運行容器,MySQL的配置就全省了。而且一旦你想換臺機器,直接把這個容器端起來,再放到另一個機器就好了。硬件,操作系統(tǒng),運行環(huán)境什么的都不需要考慮了。
在公司中的一個很大的用途就是可以保證線下的開發(fā)環(huán)境、測試環(huán)境和線上的生產(chǎn)環(huán)境一致。當(dāng)年在 Baidu 經(jīng)常碰到這樣的事情,開發(fā)把東西做好了給測試去測,一般會給一坨代碼和一個介紹上線步驟的上線單。結(jié)果代碼在測試機跑不起來,開發(fā)就跑來跑去看問題,一會兒啊這個配置文件忘了提交了,一會兒啊這個上線命令寫錯了。找到了一個 bug 提上去,開發(fā)一看,啊我怎么又忘了把這個命令寫在上線單上了。類似的事情在上線的時候還會發(fā)生,變成啊你這個軟件的版本和我機器上的不一樣……在 Amazon 的時候,由于一個開發(fā)直接擔(dān)任上述三個職位,而且有一套自動化部署的機制所以問題會少一點,但是上線的時候大家還是膽戰(zhàn)心驚。
若果利用容器的話,那么開發(fā)直接在容器里開發(fā),提測的時候把整個容器給測試,測好了把改動改在容器里再上線就好了。通過容器,整個開發(fā)、測試和生產(chǎn)環(huán)境可以保持高度的一致。
Docker在ubuntu下安裝
Docker 支持多種平臺下的安裝運行,現(xiàn)在我們選取結(jié)合度最高的ubuntu來說明安裝過程。
首先需要明確Docker支持的ubuntu版本:
Ubuntu Trusty 14.04 (LTS) (64-bit) Ubuntu Precise 12.04 (LTS) (64-bit) Ubuntu Raring 13.04 and Saucy 13.10 (64 bit)
目前Docker僅支持以上三種ubuntu版本。請大家在安裝時,確認(rèn)ubuntu版本。
如果你準(zhǔn)備啟用UFW的話,請參考以下額外步驟:
Docker使用橋接技術(shù)來管理各容器的網(wǎng)絡(luò)訪問。但是Ubuntu默認(rèn)是關(guān)閉對外網(wǎng)絡(luò)訪問的,所以在安裝之前你需要啟用防火墻的網(wǎng)絡(luò)訪問功能。
$ sudo nano /etc/default/ufw # Change: # DEFAULT_FORWARD_POLICY="DROP" # to DEFAULT_FORWARD_POLICY="ACCEPT"
修改完成后,我們需要重新加載UFW。
$ sudo ufw reload
UFW默認(rèn)存在一套網(wǎng)絡(luò)訪問規(guī)則,如果你需要其他服務(wù)器可以訪問到你的虛擬容器,那么就需要修改一下UFW的訪問規(guī)則(Docker默認(rèn)端口是2375,所以需要UFW允許2375的數(shù)據(jù)訪問)。
$ sudo ufw allow 2375/tcp
(因為Ubuntu的安裝過程類似,我們只以一個版本的安裝為例)
Ubuntu Trusty 14.04 (LTS) (64-bit)
Ubuntu Trusty使用的是3.13.0的Linux內(nèi)核,在安裝Docker時需要安裝docker.io,安裝過程中所需要的各種依賴包都可以在Ubunut官方資料庫中找到。
Ubuntu (或者Debian)因為歷史原因,內(nèi)置了一個叫做docker的KDE3/GNOME2安裝包,所以我們需要安裝和執(zhí)行的docker應(yīng)用名稱都改為docker.io
Installation
執(zhí)行以下命令,就可以安裝docker的最新版本(至少在譯者翻譯時為最新版本╮(╯▽╰)╭)
$ sudo apt-get update $ sudo apt-get install docker.io $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker $ sudo sed -i "$acomplete -F _docker docker" /etc/bash_completion.d/docker.io
OK了,執(zhí)行完以上命令后,Docker在Ubuntu上面就安裝好了。當(dāng)然過一段時間后,你安裝的版本就不會是最新版本了。這種情況下你可以安裝以下的方式進行Docker升級。
1、確認(rèn)/usr/lib/apt/methods/https是否存在,如果不存在,那么先安裝apt-transport-https( apt-get install apt-transport-https )。
2、將Docker官方資料庫的訪問Key添加到你本地系統(tǒng)。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
3、上面一步執(zhí)行成功后,就開始安裝Lxc-docker包。
$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" $ sudo apt-get update $ sudo apt-get install lxc-docker
4、如果你感覺以上三步很麻煩,那么就執(zhí)行下面的這一句吧(前提是CURL已經(jīng)安裝好了)。
$ curl -sSL https://get.docker.io/ubuntu/ | sudo sh
講過以上幾步,你就安裝最新版本的docker了。最后就是開始執(zhí)行docker吧
$ sudo docker run -i -t ubuntu /bin/bash
Docker未來發(fā)展
任何一項新技術(shù)的出現(xiàn),都需要一個發(fā)展過程,比如云計算為企業(yè)所接受用了將近五年左右時間,OpenStack技術(shù)也經(jīng)歷了兩、三年才受到人們的認(rèn)可。因此,雖然Docker技術(shù)發(fā)展很快,但技術(shù)還不夠成熟,對存儲的靈活的支持、網(wǎng)絡(luò)的開銷和兼容性方面還存在限制,這是Docker沒有被企業(yè)大范圍使用的一個主要原因。另外一個原因是企業(yè)文化是否與DevOps運動一致,只有企業(yè)支持DevOps,才能更大地發(fā)揮Docker的價值。最后一個原因就是安全性問題,Docker對于Linux這一層的安全的隔離還有待改進,才能進一步得到企業(yè)的認(rèn)可。惠普劉艷凱認(rèn)為,這也是Docker需要在下一步中改進的一方面。
相關(guān)資料
Docker,從這里做起
5分鐘弄懂Docker!
Docker學(xué)習(xí)總結(jié)之docker安裝 - vikings`s blog
docker中文網(wǎng)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21758.html
摘要:另外一個原因是企業(yè)文化是否與運動一致,只有企業(yè)支持,才能更大地發(fā)揮的價值。最后一個原因就是安全性問題,對于這一層的安全的隔離還有待改進,才能進一步得到企業(yè)的認(rèn)可。惠普劉艷凱認(rèn)為,這也是需要在下一步中改進的一方面。 前言云計算、大數(shù)據(jù),移動技術(shù)的快速發(fā)展,加之企業(yè)業(yè)務(wù)需求的不斷變化,導(dǎo)致企業(yè)架構(gòu)要隨時更改以適合業(yè)務(wù)需求,跟上技術(shù)更新的步伐。毫無疑問,這些重?fù)?dān)都將壓在企業(yè)開發(fā)人員身上;團隊...
摘要:本文主要和大家分享下容器技術(shù)和頂象風(fēng)控系統(tǒng)私有化部署的優(yōu)勢以及容器技術(shù)在頂象內(nèi)部的應(yīng)用實踐。容器技術(shù)在頂象內(nèi)部的應(yīng)用目前容器技術(shù)已在頂象內(nèi)部大規(guī)模推行,所有應(yīng)用均通過容器實現(xiàn)部署交付與更新。 頂象全景式業(yè)務(wù)安全風(fēng)控體系基于新一代風(fēng)控體系構(gòu)建,并采用Docker技術(shù)進行私有云和公有云部署。本文主要和大家分享下Docker容器技術(shù)和頂象風(fēng)控系統(tǒng)私有化部署的優(yōu)勢以及Docker容器技術(shù)在頂象...
摘要:寫在前面最近在研究集群的監(jiān)控,為了徹底弄清楚,簡單看了一點源碼。如何調(diào)用上述的監(jiān)控功能的監(jiān)控采用了組件。隨后,會在監(jiān)控機器的性能時,分為磁盤使用情況的監(jiān)控和磁盤讀寫情況的監(jiān)控。 寫在前面 最近在研究docker集群(kubernetes)的監(jiān)控,為了徹底弄清楚,簡單看了一點源碼。這里分享一下我學(xué)到的東西。 docker api: stats 首先是docker的api,stats的具體...
摘要:寫在前面最近在研究集群的監(jiān)控,為了徹底弄清楚,簡單看了一點源碼。如何調(diào)用上述的監(jiān)控功能的監(jiān)控采用了組件。隨后,會在監(jiān)控機器的性能時,分為磁盤使用情況的監(jiān)控和磁盤讀寫情況的監(jiān)控。 寫在前面 最近在研究docker集群(kubernetes)的監(jiān)控,為了徹底弄清楚,簡單看了一點源碼。這里分享一下我學(xué)到的東西。 docker api: stats 首先是docker的api,stats的具體...
摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進步歡迎點贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...
閱讀 3561·2021-09-22 10:52
閱讀 1588·2021-09-09 09:34
閱讀 1990·2021-09-09 09:33
閱讀 758·2019-08-30 15:54
閱讀 2598·2019-08-29 11:15
閱讀 713·2019-08-26 13:37
閱讀 1667·2019-08-26 12:11
閱讀 2975·2019-08-26 12:00