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