最前線的Docker實(shí)踐者都在做什么?
為了普及Docker知識(shí),推動(dòng)國(guó)內(nèi)Docker生態(tài)系統(tǒng)的建設(shè),為Docker愛(ài)好者和使用者提供一個(gè)實(shí)戰(zhàn)平臺(tái),云雀科技啟動(dòng)了“Docker巨好玩”鏡像構(gòu)建挑戰(zhàn)賽。自活動(dòng)發(fā)布以來(lái)兩周的時(shí)間內(nèi),收到了來(lái)自全國(guó)各地的60多位選手及團(tuán)隊(duì)報(bào)名參賽,參賽者涵蓋了研發(fā)、運(yùn)維、產(chǎn)品等各個(gè)職位,其中有10多位選手已經(jīng)提交了作品,參賽主題也是五花八門,只有你想不到的,沒(méi)有大家做不到的。
作為本次活動(dòng)的主辦方,除了選出最優(yōu)秀的鏡像作品外,我們更希望能夠集思廣益,充分調(diào)動(dòng)大家的創(chuàng)造性,不僅為這些Docker愛(ài)好者提供一個(gè)各顯神通的平臺(tái),更能為他們未來(lái)的工作帶來(lái)新的啟示。目前看來(lái)大家的議題主要集中在面向開(kāi)發(fā)者的鏡像和面向服務(wù)的鏡像:
面向開(kāi)發(fā)者的鏡像:如方便開(kāi)發(fā),測(cè)試的工具。這也選手們參與最多的類型,他們提交的主要議題包括:完整的Emacs開(kāi)發(fā)環(huán)境,PHP開(kāi)發(fā)測(cè)試環(huán)境,一鍵生成開(kāi)發(fā)所有常用工具,通過(guò)docker in docker的方式提供開(kāi)發(fā),持續(xù)集成,測(cè)試環(huán)境,瀏覽器兼容測(cè)試的云端解決方案等。
面向于服務(wù)的鏡像,如數(shù)據(jù)庫(kù)服務(wù),數(shù)據(jù)分析服務(wù)等第三方服務(wù)。在這一類鏡像中,參賽者的創(chuàng)意包括:RDS服務(wù),MongoDB服務(wù),開(kāi)源企業(yè)級(jí)數(shù)據(jù)庫(kù)監(jiān)控系統(tǒng),Hadoop in Docker鏡像,OpenStack鏡像等。
面向最終用戶的鏡像,如博客,電子商務(wù)和內(nèi)容管理等平臺(tái)。在這一類鏡像中,參賽者們的主要議題有:智慧學(xué)校平臺(tái),面向中小團(tuán)隊(duì)的一體化管理解決方案,VPN自動(dòng)部署環(huán)境,文檔處理鏡像等。
基礎(chǔ)鏡像:如OS鏡像,運(yùn)行環(huán)境鏡像,是構(gòu)建其他鏡像的基石。 ,參賽者們的創(chuàng)意集中在分布式計(jì)算節(jié)點(diǎn),基本的安全加固鏡像,Hadoop基礎(chǔ)鏡像,fastdfs鏡像等。
還有幾位參賽者選擇了和Docker本身相關(guān)的主題,比如Docker Registry,基于Docker的項(xiàng)目部署工具,Docker集群管理等。
很多選手的題目,都和本身自己的工作或?qū)W習(xí)聯(lián)系緊密,他們?cè)趫?bào)名不就提交了作品。特別是第一位提交作品的參賽者李進(jìn),帶給了我們很多驚喜,他不僅作品準(zhǔn)備得非常充分,提交了詳細(xì)的說(shuō)明文檔,還寫(xiě)為我們的平臺(tái)提出了很多實(shí)用的建議。深入了解后,才知道李進(jìn)竟然還是一名大二的學(xué)生,云雀內(nèi)部的小伙伴們紛紛感慨“長(zhǎng)江后浪推前浪”,時(shí)光匆匆,危機(jī)重重。他是如何在大二期間就做到這么厲害的呢?應(yīng)云雀內(nèi)部小伙伴的要求,我們專訪了李進(jìn),也分享給大家:
云雀科技:首先請(qǐng)您自我介紹一下。
李進(jìn):我叫李進(jìn),目前是大二,就讀于武漢生物工程學(xué)院網(wǎng)絡(luò)工程專業(yè)。我目前比較感興趣的方面是云計(jì)算和互聯(lián)網(wǎng)程序開(kāi)發(fā)。目前的主要工作是在杭州航桓科技有限公司做app的后端。
云雀科技:您是如何開(kāi)始Docker的實(shí)踐?Docker為您帶來(lái)了哪些便利?
李進(jìn):我開(kāi)始接觸到Docker是在學(xué)校的圖書(shū)館的興趣小組中開(kāi)始的,大約是2014年年初,我們興趣小組主要負(fù)責(zé)圖書(shū)館的服務(wù)的維護(hù)。當(dāng)時(shí)我們遇到一些性能瓶頸,比如每當(dāng)選課或者集體教師評(píng)選的時(shí)候,服務(wù)器就掛。但是平時(shí)使用量又很少。所以我們把目光投向了Docker,因?yàn)镈ocker很有彈性且快速。我嘗試了很多關(guān)于Docker的很多東西比如CoreOS,Kubernetes,Panamax,但是目前的案例還是很少有可以借鑒的,所以圖書(shū)館暫時(shí)沒(méi)有大規(guī)模應(yīng)用。目前我把一些不是很重要的服務(wù)用docker嘗試著托管,或者對(duì)程序進(jìn)行測(cè)試的時(shí)候使用docker,用完就刪除鏡像,保留dockerfile記錄構(gòu)建細(xì)節(jié)即可。另外docker最大的特點(diǎn)就是快速,所以除了集群這塊之外,我更喜歡應(yīng)用到開(kāi)發(fā)中。它帶來(lái)最大的便利就是把部署的工作帶到了開(kāi)發(fā)者的身上,運(yùn)維者不用關(guān)心細(xì)節(jié)。
云雀科技:本次參賽作品的主題是什么?為什么選擇這個(gè)主題?
李進(jìn):我參賽的主題是用Docker構(gòu)建laravel的開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)各個(gè)開(kāi)發(fā)者開(kāi)發(fā)環(huán)境統(tǒng)一。配上云雀的平臺(tái),從無(wú)開(kāi)發(fā)環(huán)境到有開(kāi)發(fā)環(huán)境大約只花幾分鐘下載鏡像即可,同時(shí)一些特殊的東西也能很好的被支持,比如自己寫(xiě)的php的擴(kuò)展,分享給隊(duì)友或者社區(qū),太方便了。而且可以根據(jù)不同的docker-compose.yml文件可以啟動(dòng)不同的環(huán)境,比如開(kāi)發(fā),部署。目前我正努力讓它更好用。所以我懇求大家能給我更多更好的建議,讓我能完善它。我選用這個(gè)主題,也是為了展現(xiàn)Docker的另一種應(yīng)用方式,比較貼合我本身的需求。
云雀科技:您在制作鏡像的過(guò)程中遇到過(guò)哪些問(wèn)題?是如何解決的?
李進(jìn):首先挺讓人頭痛的東西就是網(wǎng)絡(luò)問(wèn)題,很多GitHub上的項(xiàng)目你要構(gòu)建都比較麻煩,比如一些基于node的項(xiàng)目是依賴于npm管理包的,網(wǎng)絡(luò)有時(shí)候不好的時(shí)候包就會(huì)下不下來(lái)。我選擇的方式是安裝nrm鏡像源管理,進(jìn)行源的切換很方便。
還有個(gè)問(wèn)題就是關(guān)于Docker的特權(quán)模式的,如果我開(kāi)啟特權(quán)模式且host和容器都裝了tcpdump(備注:有時(shí)候我需要在容器查看下數(shù)據(jù)需要用到tcpdump和strace但是strace需要特權(quán)模式才能用),在容器里面使用tcpdump就會(huì)出來(lái)權(quán)限問(wèn)題,當(dāng)時(shí)挺頭疼的。解決方法就是把容器里面的tcpdump的路徑替換下:
例如(Dockerfile)
RUN mv /usr/sbin/tcpdump /usr/local/bin
最后有個(gè)問(wèn)題就是我在為node構(gòu)建開(kāi)發(fā)環(huán)境的時(shí)候,因?yàn)椴恍枰狝pache這樣的東西,所以沒(méi)有程序作為一個(gè)后臺(tái)進(jìn)程使Docker容器不退出,目前還沒(méi)有找到好的辦法,只有寫(xiě)個(gè)死循環(huán)在docker-compose.yml的配置節(jié)點(diǎn)command上。
云雀科技:您在使用AlaudaCloud過(guò)程中有哪些心得?
李進(jìn):云雀的運(yùn)行模式非常新穎,介于PaaS和IaaS之間,同時(shí)擁有IaaS和PaaS的優(yōu)點(diǎn),很貼合我這樣的小眾開(kāi)發(fā)者的需求。主要好的方面在于網(wǎng)絡(luò)環(huán)境好的沒(méi)話說(shuō),構(gòu)建的很順暢,同時(shí)對(duì)markdown的支持,我個(gè)人認(rèn)為用的舒服,是一個(gè)非常不錯(cuò)的私有倉(cāng)庫(kù)。我相信云雀平臺(tái)這種新興模式會(huì)越來(lái)越完善,是我們開(kāi)發(fā)者的福音。
再次溫馨提示各位Docker愛(ài)好者:本次大賽設(shè)置了MacBook Air,Apple Watch Sport等大獎(jiǎng),每位報(bào)名并提交作品的參賽者都將獲得精美紀(jì)念品。報(bào)名將截至5月17日,歡迎更多Docker愛(ài)好者參與進(jìn)來(lái),我們期待看到你們的創(chuàng)意!