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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Docker入门与七牛kirk工具

發(fā)布時間:2025/3/19 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker入门与七牛kirk工具 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Docker的實(shí)現(xiàn)原理和技術(shù)前景

Docker技術(shù)是一門容器技術(shù),于2013年正式開源發(fā)行,現(xiàn)在它已經(jīng)成為了目前最流行的虛擬化技術(shù),Docker的優(yōu)點(diǎn)是“輕量型”,“可移植”,“自給自足”。

?

Docker大略執(zhí)行思想如下:

1)? 啟動一個基礎(chǔ)鏡像(p_w_picpath),比如centos或者ubantu;

2)? Docker可以根據(jù)這個基礎(chǔ)的p_w_picpath來構(gòu)建成一個容器(container;

3)? 在這個容器上,我們可以像在普通的服務(wù)器上編寫需要的代碼,并且啟動編寫好的服務(wù)(service);

4)? 將這些已經(jīng)編寫好的、有服務(wù)的容器重新打包成鏡像,這個鏡像可以備用也可以放在網(wǎng)絡(luò)上分享。

?

從上面幾個操作步驟來看,Docker技術(shù)與虛擬機(jī)技術(shù)有類似的效果,同樣達(dá)到在一個宿主機(jī)上運(yùn)行多個子服務(wù)器的目的,而且每一個容器之間互不干擾,就像Docker的標(biāo)志一樣:一個大鯨魚背上面有諸多個集裝箱,這些集裝箱就是裝載各種服務(wù)的容器們,而這個大鯨魚就是docker,它可以同時負(fù)載多個容器并且讓這些容器平穩(wěn)正常的運(yùn)行,不管如此,docker容器的運(yùn)行效率又是虛擬機(jī)的好多倍,可以迅速提升響應(yīng)速度也是Docker備受開發(fā)人員和運(yùn)維人員青睞的原因之一。Docker的引擎開發(fā)、二次管理以及安全策略也是時下非?;馃岬募夹g(shù),可以說Docker 給運(yùn)維帶來了革命性的改變,大有深入乃至挖掘的必要性!

?

二、Docker的安裝以及kirk的安裝

Docker的安裝對宿主機(jī)的內(nèi)核有比較硬性的要求,Docker要求宿主機(jī)的內(nèi)核是3.1.10。也就是說Docker應(yīng)該工作在Centos 7以上的版本里,而不是我們傳統(tǒng)購買的服務(wù)器Centos 6.5版本。由于目前阿里云和金山云的Centos 6.5默認(rèn)自帶的內(nèi)核都是2.6.32,所以如果要在以上兩個廠家的Centos 6.5里正常使用Docker的話需要我們自己升級內(nèi)核。

?

Centos 7里安裝Docker是十分簡單的,只需要#yum install Docker,而啟動Docker也是很簡單的:#service Docker start,在運(yùn)行之后我們可以查看一下當(dāng)前Docker的版本:

如果能像如圖那樣成功顯示Docker的版本,即代表Docker已經(jīng)安裝且運(yùn)行成功。


Kirk是七牛云提供的一個管理docker容器的工具,我們可以把七牛的賬號用于kirk,使kirk專門存儲內(nèi)部的模塊鏡像,并且可以調(diào)用這些docker服務(wù),它對應(yīng)linux下載包的地址是http://7xqd3r.com1.z0.glb.clouddn.com/kirk/beta/latest/linux-amd64/kirk.tar.gz,下載完畢之后直接拆包解壓即可使用。

?

三、整個P2P的服務(wù)啟動過程

下面我將以P2P為例,演示一下啟動P2P服務(wù)的過程:

當(dāng)我們從開發(fā)人員手里獲取到docker file,并且將其build成一個可使用的鏡像之后。

? 1)? 登陸kirk賬戶

在七牛網(wǎng)站右上角的“個人面板”點(diǎn)擊“密鑰管理”,就會看到一對密碼分別是AK/SK,如圖所示:

在服務(wù)器端輸入#kirk login就是登陸kirk賬號,這里就對應(yīng)輸入AKSK,輸入正確的話就是提示登入成功。

2)使用#kirk p_w_picpaths來查看kirk里所有的鏡像:

? ? ? ? 看到現(xiàn)在的kirk里面已經(jīng)有不少的docker? P2P鏡像,而且后面分別是這些鏡像建立的時間點(diǎn),我們這里需要的是p2prelay服務(wù),于是我們只需要啟動它,但是要注意,在docker里一個鏡像是可以生成多個容器的,這些容器在出生階段是一模一樣的。但是在kirk里一個鏡像只能生成一個服務(wù)(service),如果重復(fù)的打開同一個服務(wù),會報(bào)錯ERROR fail to start service: {"code":400,"codeName":"E30014","description":"current state is invalid to start service"}

,查看當(dāng)前運(yùn)行容器的命令是#kirk ps,因?yàn)檫@是一個新裝的機(jī)器,所以#kirk ps結(jié)果為空。


? 我們要啟動服務(wù)的話,需要先啟動七牛的工具,#kirk service qiniu-tool,然后再如法炮制分別啟動對應(yīng)的服務(wù),比如啟動relay-1、relay-2、gms等等,如圖所示:

如果這個時候想進(jìn)入到relay-1這個容器里面看一下,就使用#kirk ssh relay-1這個命令:

? ? ? ?這里發(fā)現(xiàn)hostname發(fā)生了變化,變成的10-128-128-113恰巧就是relay-1對應(yīng)的那個container編碼,在容器里這個P2PRelay已經(jīng)完全啟動了。

?

? ?如果想要退出當(dāng)前容器,使用命令#exit就返回宿主機(jī),繼續(xù)宿主機(jī)的操作。


四、校驗(yàn)

? 啟動服務(wù)之后,我們登陸到容器relay-1,容器就相當(dāng)于是一個虛擬機(jī),那么在這個小虛擬機(jī)里是可以查看進(jìn)程的,使用#ps –ef一下可以查看進(jìn)程,而且還可檢查一下端口以及看一下其他的服務(wù):

?? ? 由于這臺P2P只是試驗(yàn),所以bind count和angets num都是零,但是依舊可以看出服務(wù)和端口已經(jīng)是正確的了。

? ? ? ?但是目前七牛的kirk還是有一點(diǎn)問題:它只能把容器掛載到宿主機(jī)的文件夾上,而不能實(shí)現(xiàn)把容器掛載到其他云服務(wù)器的文件夾上,這一點(diǎn)在模塊的升級上有所不便,與七牛技術(shù)人員溝通,他們反饋目前在做一個類似網(wǎng)絡(luò)云盤共享的開發(fā),預(yù)計(jì)將來可以通過此途徑解決這個問題。但是在目前階段,如果涉及到模塊的更新,就需要重新編寫一個p_w_picpath,重新build成鏡像,這一點(diǎn)與原有的從掛載盤上拷貝更新腳本有很大的不同。


五、對比

在傳統(tǒng)的運(yùn)維部署下,運(yùn)維人員需要做的事情如下:

1)? 購買云服務(wù)器,對應(yīng)填寫服務(wù)器ip表格;

2)? 初始化服務(wù)器,金山區(qū)服務(wù)器還需要掛載數(shù)據(jù)盤;

3)? 檢查角色,運(yùn)行模塊安裝腳本;

4)? 將服務(wù)器內(nèi)網(wǎng)ip添加到zk配置里;

5)? 啟動進(jìn)程,檢查zk、模塊、看門狗是否都已經(jīng)啟動;

6)? 檢查日志情況;

而在docker-kirk的環(huán)境下,運(yùn)維部署模塊的步驟:

1)??購買云服務(wù)器,對應(yīng)填寫服務(wù)器ip表格;

2) 運(yùn)維人員得到開發(fā)人員的dockerfile,將其build成一個鏡像;

3)? 使用kirk上傳其鏡像到七牛云;

4)? kirk啟動對應(yīng)的服務(wù);

5)? 根據(jù)不同的ip需求配置ip端口;

6)? 登陸容器內(nèi)部,檢查進(jìn)程、zk、看門狗;

7)? 檢查日志情況。

?

從上所見,在docker-kirk過程里省去了腳本這一步,傳統(tǒng)模式下由于開發(fā)人員模塊編寫語言各有不同,有的是java模塊,有的是tomcat模塊,因此在啟動上和后臺所需環(huán)境版本上均有差異,有的甚至在看門狗的配置上都有差異,而這些差異都是需要運(yùn)維人員手動去修改腳本,而使用了docker-kirk,就可以將2、3、4步整合成一個腳本,然后通過運(yùn)行腳本直接將已經(jīng)配置好的鏡像生成到容器里部署到服務(wù)器里使用,這樣更加便捷從而提升了效率。


但是kirkip配置是一個難點(diǎn),而且批量端口影射服務(wù)尚不完善,這些都有待七牛開發(fā)人員后續(xù)跟進(jìn)補(bǔ)全。


六、總結(jié)?

? ?如果引用Docker技術(shù)的話,我們將來可以依舊使用阿里云、金山云的跳板機(jī)去登錄相對性能較低的云服務(wù)器,同時在服務(wù)器上安裝七牛的kirk工具,同時根據(jù)不同的模塊需求購買對應(yīng)性能的七牛云服務(wù),七牛云服務(wù)提供硬件環(huán)境,kirk作為工具,這樣兩者雙劍合并來增刪改用各種Docker鏡像,從而啟動各種進(jìn)程。

??目前測試看來Docker的優(yōu)點(diǎn)如下:

??1?????????保證線上與測試的環(huán)境一致,省去了中間配置各種環(huán)境的麻煩,甚至可以在同一個服務(wù)器上安裝不同獨(dú)立的服務(wù);

2?????????快速部署,傳統(tǒng)的部署模式是:安裝(包管理工具或者源碼包編譯)->配置->運(yùn)行;Docker的部署模式是:復(fù)制->運(yùn)行;

3?????????對云計(jì)算更加方便和友好。

而其缺點(diǎn)如下:

1???????目前尚不支持傳統(tǒng)意義上的掛載,升級的時候需要重做鏡像;

2???????網(wǎng)絡(luò)機(jī)制比較復(fù)雜,導(dǎo)致其大型部署比較麻煩,甚至?xí)霈F(xiàn)失控情況;

3???????一些運(yùn)維常見功能比如crontab需要事前增加到Dockerfile里;

4 ?目前kirk不支持退出當(dāng)前賬號的功能;




轉(zhuǎn)載于:https://blog.51cto.com/chenx1242/1846337

總結(jié)

以上是生活随笔為你收集整理的Docker入门与七牛kirk工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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