锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鑻ユ妸涓鍙癓inxu鏈哄櫒姣斿柣涓轟竴鑹樿埞錛岄偅涔堟瘡涓涓狶inux Container灝卞ソ姣旇埞涓婄殑涓涓泦瑁呯銆?/p> 鍙﹀涓涓眰闈紝Docker Image(闀滃儚)灝辨槸涓涓鍏堝畾涔夎涓虹殑妯℃澘錛孌ocker Container(瀹瑰櫒)鏄暅鍍忔ā鏉胯繍琛屾椂鐨勭姸鎬併備竴涓暅鍍忔ā鏉匡紝鍙互瀵瑰簲N涓鍣ㄥ疄渚嬭繍琛屾椂銆?Docker鍙風О錛?闀滃儚)涓澶勬瀯寤猴紝鍒板榪愯(Container)錛岃繖涓嶆槸褰撳垵Java鐨勫彛鍙峰槢錛佹棤璁烘槸宸ヤ綔鏈猴紝榪樻槸綰夸笂鏈嶅姟鍣紝 涓涓叿浣撶殑Docker闀滃儚灝卞ソ姣斾竴寮犵敾鏉匡紝浣犲湪涓婇潰鐢諱粈涔堬紝浣犱滑灝變細褰㈡垚鏂扮殑妯℃澘錛屽彲浠ュ驚鐜埄鐢ㄣ?/p> Docker鍙敤浜庢祴璇曪紝鍙敤浜庢矙綆遍殧紱伙紝鍙敤浜庤繍琛屾闈紝鍙敤浜庝綔涓烘暟鎹?Web鏈嶅姟瀛樺湪錛屾諱箣浣滀負涓涓緝涓哄畬鏁寸殑鎶借薄鐨勬妧鏈爢鏍堟ā鏉匡紝濂芥瘮鎵撳紑浜嗕竴鎵囩獥錛岀粰浜堜簡浜轟滑鑻ュ共縐嶅彲鑳芥э紝鏃犻檺鐨勬兂璞$┖闂淬?/p> 璁懼畾浼佷笟鍐呴儴錛屾瘡涓涓郴緇熼兘闇瑕佺嫭浜玆edis緙撳瓨鏈嶅姟錛岃繖涓嶅氨鏄疭AAS杞歡鍗蟲湇鍔$殑閫傜敤鍦烘櫙鍢?鑻ュ熀浜嶥ocker涓婃瀯寤猴紝閭f槸鐩稿綋鐨勭畝鍗曘備嬌鐢―ocker鑴氭湰鏋勫緩Redis鏈嶅姟闀滃儚妯℃澘錛岄偅鏄浉褰撶殑綆鍗曪細 redis.dockerfile錛?/p> 鎺ョ潃鏋勫緩闀滃儚錛?/p> 褰撶劧錛屼綘鍙互浣跨敤dns鏈嶅姟鏉ラ氳繃鍐呴儴鍩熷悕榪涜璺敱瀹氫綅錛岃繖閲岀畝鐣ャ?/p>
榪愯鏃惰緗煇涓涓猂edis Server鍏蜂綋瀹炰緥: 榪欓噷鎸囧畾褰撳墠榪愯鐨勫疄渚嬪悕縐頒負redis1_server錛屽垎閰?G鍐呭瓨錛屼互鍚庡彴榪涚▼鏈嶅姟鏂瑰紡榪愯錛屽悓鏃剁鍙f槧灝勫埌瀹夸富鏈烘寔鏈夌浜屼釜IP鍦板潃192.168.190.133鍜岀鍙?001涓娿傛墽琛屼笂闈㈠懡浠わ紝浼氭敹鍒板綋鍓嶅唴鏍鎬笉鏀寔浜ゆ崲鍒嗗尯鐨勮鍛婁俊鎭紝榪欓噷鐩存帴鏃犺濂戒簡錛?/p> 鍦ㄥ涓繪妧鏈笂瀹夎redis瀹㈡埛绔紝嫻嬭瘯涓涓嬶紝紜鍙互榪炴帴鍒皉edis1_server鏈嶅姟鍣ㄤ笂錛?/p> redis1_server鍦ㄨ繍琛屼腑錛岃緭鍏?ctrl + ]錛岃緭鍏?strong>q閫鍑簍elnet銆?/p>
榪愯鏇村鐨凴edis闀滃儚瀹炰緥: 瀹夸富鏈哄彧鏈?G鍐呭瓨錛岄偅涔堟瘡涓涓猂edis Sever閮戒細鑷姩鍒嗛厤1G鍐呭瓨錛岃繍琛?涓疄渚嬶紝鍑虹幇浜嗚祫婧愯秴鍞幇璞★細 鍦ㄦ瘡涓涓鍣ㄥ疄渚嬪疄闄呭崰鐢ㄥ唴瀛橀兘杈懼埌鎴栨帴榪?G鏃訛紝浼氬嚭鐜板唴瀛樼敵璇峰嚭鐜板け璐ユ儏鍐點傚疄闄呯幆澧冧腑錛岃繖涓槸闇瑕佸敖閲忛伩鍏嶈祫婧愯秴鍞殑銆?/p>
鍦ㄤ笉鑰冭檻璧勬簮瓚呭敭鎴栫悊鎯蟲儏鍐典笅錛屼竴鍙版湇鍔℃湇鍔″櫒鏈澶氬彲铏氭嫙澶氬皯涓猂edis Server瀹瑰櫒瀹炰緥鍛紝榪欎釜璺熺綉緇滆祫婧愭湁鍏熾?/p>
鏈嶅姟鍣ㄥ澶栨毚闇插湴鍧(IP:Port)涓轟簩鍏冪粍錛岀悊璁轟笂涓鍙癓inux Server鍙互浣跨敤鐨勭鍙f暟閲忎負65535涓?鍘婚櫎甯哥敤鐨勭鍙h涓哄彲鐢ㄧ鍙f湁65000涓?錛屾湰鏈哄彲浠ョ粦瀹氱殑IP鏁伴噺 * 鍙敤绔彛鏁伴噺 = 鍗曟満鏈澶у彲浠ュ澶栨彁渚涚殑鏈嶅姟鍣ㄦ帴鍙e湴鍧錛屽嵆Redis Server瀹炰緥銆傝繖浜涙湁浜涙棤鑱婁簡 錛?) 铏界劧Docker鍒扮幇鍦ㄨ繕娌℃湁閲婂嚭1.0鐗堬紝浣嗗熀浜嶥ocker鏋勫緩縐佹湁榪樻槸鍏湁鐨凷ervice錛屼笟鐣屽凡緇忕粰浜堜簡寰堝ソ鐨勪竴浠界瓟妗堛?/p>
鍥藉唴宸茬粡鏈夌櫨搴︿嬌鐢―ocker鏋勫緩鑷繁鐨勫晢鐢≒AAS騫沖彴錛岃瑙?a >Baidu using Docker for its PaaS銆傚綋鐒朵簡錛屽浗鍐呭叾瀹働AAS鎻愪緵鍟嗕篃閮藉湪鏆椾腑浣垮姴銆?/p>
http://www.tsuru.io/鐨勫紑鍙戣呰礎鐚殑tsuru and docker鏂囨。錛屽緢濂界殑璇存槑浜嗕粬浠浣曚嬌鐢―ocker鎼緩瀹屾暣鐨凱AAS騫沖彴涓浜涘疄璺典簨瀹滐紝鍖呮嫭DNS/璺敱銆佸悇縐嶇嫭绔婼AAS銆佹湇鍔″彂鐜扮瓑錛屽湪鏋舵瀯涓婅繕鏄緢娓呮櫚鐨勩?/p>
鍡紝鏈夋満浼氾紝鎯蟲祴嫻婦ocker涓鍣ㄧ殑鎬ц兘濡備綍銆?/p> Docker鐨勬枃浠剁郴緇烝UFS錛屼竴縐?#8220;澧為噺鏂囦歡緋葷粺”錛岀敤鎴鋒墍鍋氫慨鏀逛互澧為噺鐨勬柟寮忎繚瀛橈紝鍐沖畾浜嗗叾鍒嗗眰瀛樺偍鐗規с?/p> 鏈欏跺眰涓鴻鍐欏眰錛屽垵濮嬪皢鏃犲唴瀹癸紝鍚庣畫鍒涘緩鏂囦歡灝嗕細淇濆瓨浜庢銆傝嫢渚濊禆灞?浜﹀嵆杈冧綆灞?闇瑕佹洿鏂版枃浠訛紝閭d箞鏇存柊鍚庣殑鏂囦歡灝嗚淇濆瓨鍦ㄦ渶欏跺眰銆傛諱箣錛岄櫎浜嗘渶欏跺眰錛屾墍鏈夊簳灞傞兘涓嶅彲鍐欍傝緝浣庡眰鎬繪槸琚叾瀹冮暅鍍忓叡浜傛諱箣錛孌ocker浠呬粎闇瑕佽褰曟渶欏跺眰瀹瑰櫒鎵鏈夋敼鍙樺嵆鍙紝榪欓儴鍒嗗彲浠ュ仛鍒扮増鏈洿榪佸閲忓紡瀛樺偍錛岃璁℃濊礬寰堣禐錛?/p> 鍏跺疄錛屾垜寰堝叧蹇僁ocker榪愯涓殑瀹瑰櫒瀹炰緥錛屽浣曚繚瀛樼姸鎬併?/p> 榪愯涓殑Docker瀹瑰櫒瀹炰緥棣栧厛浼氬湪褰撳墠鍐呭瓨涓寔鏈変竴浜涚姸鎬佷俊鎭紝鍏舵鏂囦歡緋葷粺閮戒細鍙戠敓鎴栧鎴栧皯鐨勬敼鍙樸傚綋鍓岲ocker鑳藉鏀寔鍝簺鎸佷箙鍖栵紝涓嬮潰涓涓鍒楀嚭銆?/p> 瀹瑰櫒瀹炰緥鍥犳剰澶栧嚭鐜伴鍑猴紝濡備綍鎸佷箙鍖栬繖縐嶆儏鍐碉紝浜轟負浣跨敤 'docker commit'錛屼篃鏄笉閿欑殑鏂規硶銆備絾鏈変漢鎻愬嚭浜嗘洿濂界殑鏂瑰紡錛岄氳繃鎹曟崏閫鍑轟俊鍙鳳紝涓嶅Θ涓璇曘?/p> 瀹瑰櫒瀹炰緥鐨勬寕璧?鎭㈠褰撳墠Docker涓嶆敮鎸佸鍣ㄧ殑鎸傝搗/鎭㈠鎿嶄綔錛屼絾鍙弬鑰冧竴涓嬪師鐢熺殑LXC鍐呯疆鍛戒護lxc-freeze/lxc-unfreeze鍜?/strong>CRIU(http://criu.org/Main_Page)錛?/p> consider a docker suspend and resume Can I suspend and then resume Docker container? 鐩墠鏈鏈熷緟Docker鍜孋RIU鐨勬暣鍚堝伐浣滄湁寰呰繘灞曪紝鍙兘浼氫績榪汥ocker鍟嗕笟鍖栨洿榪涗竴姝ャ?/p> 鎸傝澆瀹夸富鏈虹洰褰?Docker鏀寔鎸傝澆瀹夸富鏈虹洰褰曪紝鏀寔瀹夸富鏈虹洰褰曞拰瀹瑰櫒涔嬮棿鏂囦歡鐩綍榪涜鏄犲皠錛屽郊姝ゅ叡浜? 鍦―ockerfile涓紝鍒欏彲浠ヤ嬌鐢?VOLUME'鍛戒護 濡備綍鍦ㄥ鍣ㄤ箣闂村叡浜瓨鍌?瀹瑰櫒涔嬮棿鏂囦歡鐩綍(鏁版嵁鍗?鍙垎浜侀噸鐢紝涓昏鍊熷姪浜?-volumes-from'鍙傛暟瀹炵幇銆?/p> 榪欎釜鐗規э紝鍙紩鍏ュ緢澶х殑鎯寵薄絀洪棿銆傝嫢錛屼竴涓狢ontainer瀹炰緥鐢ㄤ簬Web瀛樺偍錛屽彟澶栦袱涓疄渚嬭礋杞界敤浜庡鐞嗗簲鐢ㄨ姹傦紝鍒嗗垎紱葷錛岄檷浣庤﹀悎銆?/p>
闀滃儚瀵煎叆/瀵煎嚭鏋勫緩鐨勯暅鍍忥紝浣滀負涓縐嶇姸鎬佸瓨鍦紝鏀寔寰堟柟渚跨殑瀵煎叆瀵煎嚭銆傚鍑猴細 瀵煎叆闀滃儚錛?/p> 灝忕粨 鐩墠Docker瀵硅繍琛屼腑瀹瑰櫒鍐呭瓨鐘舵佹寔涔呭寲涓嶆敮鎸侊紝浠呴檺浜庢枃浠跺眰闈㈢殑鎸佷箙鍖栨敮鎸佺瓑銆傞氳繃鎸傝澆瀹夸富鏈虹洰褰曪紝鎶婂彉鍖栭儴鍒唌ount榪囨潵鍗沖彲錛屽噺灝慸ocker commit嬈℃暟錛屽疄鐜板姩闈欐佸垎紱匯?/p>
鏇村淇℃伅錛屽彲鍙傝冿細Share Directories via Volumes 鍦ㄧ涓綃囨枃瀛椾腑錛屾垜浠畬鍏ㄤ漢宸ユ柟寮忥紝涓涓懡浠や竴涓懡浠よ緭鍏ワ紝瀹炵幇涓涓猨ava tomcat榪愯鐜錛岃櫧鐒朵篃鍒濊鎴愭晥錛屼絾寰堢瘡浜恒傚鏋滀緷闈犱緷闈犺剼鏈瀯寤轟竴涓猅omcat瀹瑰櫒瀹炰緥錛屼竴涓懡浠ゅ彲浠ユ悶瀹氾紝浣曚箰鑰屼笉涓哄憿銆傚ソ鍦―ocker鎻愪緵浜咲ockerfile浣滀負鏋勫緩Docker闀滃儚鑴氭湰錛岄伩鍏嶄漢浠竴琛屼竴琛岀殑杈撳叆錛岀湡鏄杽鑾ぇ鐒夈侱ockerfile鑴氭湰鍙互鍋氬埌闅忔椂緇存姢淇敼錛屽嵆鍙互鍒嗕韓錛屾洿鏈夊埄浜庡湪妯℃澘鍖栵紝鏇翠笉鐢ㄨ浼犺緭浜嗭紝濂藉閭f槸涓澶х絳愶紒 鏈緇堢洰鐨勶細鎵撻犱竴涓敮鎸丼SH緇堢鐧誨綍銆乀omcat7鑷姩榪愯鐨凞ocker闀滃儚銆?/p> 鎵鏈夌幆澧冿紝鍚岀涓綃囨枃瀛椼傚湪ubuntu涓嬪畨瑁呭ソvim涔嬪悗錛堝悙妲戒竴涓嬶紝ubuntu緋葷粺鍐呯疆vi鍛戒護鍗佸垎闅劇敤錛屽彧濂芥眰鍔╀簬vim )錛?/p> 緙栬緫涓涓狣ockerfile鏂囦歡浜嗭紝涓嬮潰灝辨槸鍏蜂綋鏂囦歡鍐呭錛?/p> 闇瑕佹敞鎰忥細 ENTRYPOINT/CMD錛屼竴鑸袱鑰呭彲浠ラ厤鍚堜嬌鐢紝姣斿錛?/p> 鍦―ocker銆daemon妯″紡涓嬶紝鏃犺浣犳槸浣跨敤ENTRYPOINT錛岃繕鏄疌MD錛屾渶鍚庣殑鍛戒護錛屼竴瀹氳鏄綋鍓嶈繘紼嬮渶瑕佷竴鐩磋繍琛岀殑錛屾墠鑳藉闃插鍣ㄩ鍑恒?/p> 浠ヤ笅鏃犳晥鏂瑰紡錛?/p> 榪欐牱鏈夋晥錛?/p> 榪欐牱涔熸湁鏁堬細 鍏蜂綋璇峰弬鑰冨畼鏂規枃妗o細 鑴氭湰鍐欏ソ浜嗭紝闇瑕佽漿鎹㈡垚闀滃儚錛?/p> -t錛?涓烘瀯寤虹殑闀滃儚鍒跺畾涓涓爣絳撅紝渚夸簬璁板繂/绱㈠紩絳?/p> . 錛?鎸囧畾Dockerfile鏂囦歡鍦ㄥ綋鍓嶇洰褰曚笅 緗戦熶笉澶ソ錛屼細絳夊緟寰堥暱鏃墮棿銆傚緢澶氭搷浣滃彲鑳介渶瑕佺瀛︿笂緗戯紝閫煎緱鎴戝彧鑳戒竴鐩存寕鐫VPN錛屾柟鑳界晠閫氭棤闃匯?/p> 鏋勫緩闀滃儚瀹屾垚涔嬪悗錛岀湅鐪嬭繍琛屾晥鏋滐細 鍦ㄨ繍琛屽懡浠や腑錛岃繕寰楅渶瑕佹樉寮忔寚瀹?-p 22 -p 8080:8080錛屽惁鍒欏湪Docker 0.8.1鐗堟湰涓笉浼氫富鍔ㄦ槧灝勫埌瀹夸富鏈轟笂銆傛嵁鎮夊湪Docker 0.4.8鐗堟湰鏃訛紝灝變笉鎷呭績榪欎釜闂銆?
鎴栬咃紝鎮ㄨ鏈夊ソ鐨勬柟寮忥紝涓嶅Θ鍛婄煡浜庢垜錛岃阿璋€?/p> 鍦―ockerfile涓紝鑻ユ病鏈変嬌鐢‥NTRYPOINT/CMD鎸囦護錛岃嫢榪愯澶氫釜鍛戒護錛屽彲浠ヨ繖鏍峰仛錛?/p> 鍒涘緩濂界殑闀滃儚錛屽彲浠ヤ繚瀛樺埌绱㈠紩浠撳簱涓紝渚夸簬涓嬫浣跨敤錛堝綋鐒訛紝鎴戜滑鐩存帴鍏變韓Dockerfile錛屾槸鏈綆鍗曠殑浜嬫儏錛?)) 錛夛紝浣嗘瘯绔熼暅鍍忓彲浠ュ仛鍒板紑綆卞嵆鐢ㄣ?/p> 鏋勫緩闀滃儚 涓婇潰宸茬粡鏋勫緩OK鐨勮瘽錛屽彲鐪佺暐姝ゆ銆?/p> 鐧婚檰 鎻愪氦鍒癉ocker绱㈠紩浠撳簱 鐜板湪鍙互璧鋒潵鍠濇澂鐑按錛屽嚭鍘繪簻杈句細錛屼篃涓嶄竴瀹氳兘澶熶笂浼犲畬姣曪紝閭e彨涓涓參鍟婏紒 涓婁紶OK鐨勮瘽錛屽彲浠ュ緱鍒扮被浼煎湴鍧錛歨ttps://index.docker.io/u/yongboy/java7/ 濡備綍浣跨敤闀滃儚 鍓╀笅鐨勬楠わ紝灝卞緢綆鍗曚簡銆?/p> 鏈夊叧Dockerfile鐨勮繘闃墮槄璇伙細 浠ヤ笂铚昏湏鐐規按涓鑸紝鏇村緇嗚妭錛岃闃呰瀹樻柟鏂囨。銆?
鑻ユ湁絀猴紝鍦ㄤ笅綃囦腑錛岃璁轟竴涓婦ocker鐨勪竴浜涙満鍒剁瓑銆?
鍡紝鏈榪戝け涓氫簡錛屾偍濡傛湁蹇冿紝鍙互甯繖鎺ㄨ崘涓涓嬶紝璋㈣阿銆?/p> Docker鏃ㄥ湪鎻愪緵涓縐嶅簲鐢ㄧ▼搴忕殑鑷姩鍖栭儴緗茶В鍐蟲柟妗堬紝鍦?Linux 緋葷粺涓婅繀閫熷垱寤轟竴涓鍣紙杞婚噺綰ц櫄鎷熸満錛夊茍閮ㄧ講鍜岃繍琛屽簲鐢ㄧ▼搴忥紝騫墮氳繃閰嶇疆鏂囦歡鍙互杞繪澗瀹炵幇搴旂敤紼嬪簭鐨勮嚜鍔ㄥ寲瀹夎銆侀儴緗插拰鍗囩駭錛岄潪甯告柟渚褲傚洜涓轟嬌鐢ㄤ簡瀹瑰櫒錛屾墍浠ュ彲浠ュ緢鏂逛究鐨勬妸鐢熶駭鐜鍜屽紑鍙戠幆澧冨垎寮錛屼簰涓嶅獎鍝嶏紝榪欐槸 docker 鏈鏅亶鐨勪竴涓帺娉曘傛洿澶氱殑鐜╂硶榪樻湁澶ц妯?web 搴旂敤銆佹暟鎹簱閮ㄧ講銆佹寔緇儴緗層侀泦緹ゃ佹祴璇曠幆澧冦侀潰鍚戞湇鍔$殑浜戣綆椼佽櫄鎷熸闈?VDI 絳夌瓑銆?/p>
涓昏鐨勫嵃璞★細Docker 浣跨敤 Go 璇█緙栧啓錛岀敤 cgroup 瀹炵幇璧勬簮闅旂錛屽鍣ㄦ妧鏈噰鐢?LXC. 鎻愪緵浜嗚兘澶熺嫭绔嬭繍琛孶nix榪涚▼鐨勮交閲忕駭铏氭嫙鍖栬В鍐蟲柟妗堛傚畠鎻愪緵浜嗕竴縐嶅湪瀹夊叏銆佸彲閲嶅鐨勭幆澧冧腑鑷姩閮ㄧ講杞歡鐨勬柟寮忋侺XC鍛戒護鏈変簺澶嶆潅錛岃嫢鎰熷叴瓚o紝榪欓噷鏈変竴綃囨垜浠ュ墠鍐欑殑鍩轟簬LXC錛岋紙 鏈夊叧瀹炵幇鍘熺悊銆佺浉鍏崇悊璁恒佽繍鐢ㄥ満鏅瓑錛屼細鍦ㄦ湰緋誨垪鍚庨潰涔﹀啓錛岃繖閲屽厛鏉ヤ竴涓祬灝濊緞姝紝瀹屽叏鎵嬪姩錛屽熀浜嶥ocker鎼緩涓涓猅omcat榪愯鐜銆傚厛鍑烘潵涓涓儚妯″儚鏍稤emo錛屽彲浠ヨ鍒版晥鏋滐紝鍙兘浼氳鎴戜滑璧扮殑鏇磋繙涓浜涖?/p>
鏈枃鎵鏈夌幆澧冿紝VMware WorkStation涓婅繍琛寀buntu-13.10-server-amd64,娉ㄦ剰鏄?4浣嶇郴緇燂紝鐞嗚涓婂叾瀹冭櫄鎷熸満涔熸槸瀹屽叏鍙鐨勩?/p>
Docker 0.7鐗堟湰闇瑕乴inux鍐呮牳 3.8鏀寔錛屽悓鏃墮渶瑕丄UFS鏂囦歡緋葷粺銆?/p>
鍦║buntu涓嬶紝鍦ㄦ墽琛孌ocker鏃訛紝姣忔閮借杈撳叆sudo錛屽悓鏃惰緭鍏ュ瘑鐮侊紝寰堢瘡浜虹殑錛岃繖閲屽井璋冧竴涓嬶紝鎶婂綋鍓嶇敤鎴鋒墽琛屾潈闄愭坊鍔犲埌鐩稿簲鐨刣ocker鐢ㄦ埛緇勯噷闈€?/p>
Docker瀹夎瀹屾瘯錛屽悗鍙拌繘紼嬩篃鑷姩鍚姩浜嗭紝鍙互瀹夎铏氭嫙鏈哄疄渚嬶紙榪欓噷鐩存帴鎷垮畼鏂規紨紺轟嬌鐢ㄧ殑learn/tutorial闀滃儚涓轟緥錛夛細 瀹夎瀹屾垚涔嬪悗錛岀湅鐪嬫晥鏋?/p>
浜や簰寮忚繘鍏ユ柊瀹夎鐨勮櫄鎷熸満涓?/p>
浼氱湅鍒幫細 璇存槑宸茬粡榪涘叆浜や簰寮忕幆澧冦?/p>
瀹夎SSH緇堢鏈嶅姟鍣紝渚夸簬鎴戜滑澶栭儴浣跨敤SSH瀹㈡埛绔櫥闄嗚闂?/p>
鑾峰彇鍒板垰鎵嶆搷浣滅殑瀹炰緥瀹瑰櫒ID 鍙互鐪嬪埌褰撳墠鎿嶄綔鐨勫鍣↖D涓猴細51774a81beb3銆傛敞鎰忎簡錛屼竴鏃﹁繘琛屾墍鏈夋搷浣滐紝閮介渶瑕佹彁浜や繚瀛橈紝渚夸簬SSH鐧婚檰浣跨敤錛?/p>
浠ュ悗鍙拌繘紼嬫柟寮忛暱鏈熻繍琛屾闀滃儚瀹炰緥錛?/p>
ubuntu瀹瑰櫒鍐呰繍琛岀潃鐨凷SH Server鍗犵敤22绔彛錛?p 22榪涜鎸囧畾銆?strong>-p 80:8080 鎸囩殑鏄紝鎴戜滑ubuntu灝嗕細浠?080绔彛榪愯tomcat錛屼絾瀵瑰錛堝鍣ㄥ錛夋槧灝勭殑绔彛涓?0銆?/p>
榪欐椂錛屾煡鐪嬩竴涓嬶紝鏄惁鎴愬姛榪愯銆?/p>
娉ㄦ剰榪欓噷鐨勫垎閰嶉殢鏈虹殑SSH榪炴帴绔彛鍙蜂負49154錛?/p>
杈撳叆鍙互鍙d護錛屾槸涓嶆槸鍙互榪涘叆浜嗭紵浣犱竴鏃︽帶鍒朵簡SSH錛屽墿涓嬬殑浜嬫儏灝卞緢綆鍗曚簡錛屽畨瑁匤DK錛屽畨瑁卼omcat絳夛紝闅忎綘鎵鎰夸簡銆備互涓嬩負瀹夎鑴氭湰錛?/p>
榛樿鎯呭喌涓嬶紝tomcat浼氬崰鐢?strong>8080绔彛錛屽垰鎵嶅湪鍚姩闀滃儚瀹炰緥鐨勬椂鍊欙紝鎸囧畾浜?-p 80:8080錛寀buntu闀滃儚瀹炰緥/瀹瑰櫒錛屽紑鏀?080绔彛錛屾槧灝勫埌瀹夸富鏈虹鍙e氨鏄?0銆傜煡閬撳涓繪満IP鍦板潃錛岄偅灝卞彲浠ヨ嚜鐢辮闂簡銆傚湪瀹夸富鏈轟笂錛岄氳繃curl嫻嬭瘯涓涓嬪嵆鍙細 褰撶劧錛屼綘涔熷彲浠ヤ嬌鐢ㄦ祻瑙堝櫒璁塊棶鍟︺?/p>
鐪熷疄鎯呭喌錛屽彲鑳戒笉浼氳tomcat鐩存帴瀵瑰寮鏀?0绔彛錛屼竴鑸兘浼氫綅浜巒ginx/apache鎴栬呴槻鐏鐨勫悗闈紝涓婇潰浠呬負婕旂ず銆?/p>
鍦―ocker甯姪涓嬫惌寤轟竴涓猅omcat榪愯鏃剁幆澧冿紝鎬諱綋寰堢畝鍗曪紝璁╂垜浠湅鍒頒簡PAAS鐨勮韓褰便備笉閿欙紝浣跨敤Docker浣滀負PAAS搴曞眰鏈嶅姟錛屾湰韜氨涓嶅鏉傘?
涓嬮潰鏈夋椂闂達紝浼氳皥涓璋堝浣曚嬌鐢ㄨ剼鏈枃浠舵瀯寤轟竴涓暅鍍忓疄渚嬶紝鍚屾椂浼氳皥涓璋圖ocker鐨勫疄鐜板師鐞嗗拰鏈哄埗絳夈?/p>鏋勫緩涓涓猂edis as a Service闀滃儚
FROM ubuntu:12.10
RUN apt-get update
RUN apt-get -y install redis-server
EXPOSE 6379
ENTRYPOINT ["/usr/bin/redis-server"]
docker build -t yongboy/redis -< redis.dockerfile
docker run -name redis1_server -d -p 192.168.190.133:7001:6379 -m 1g yongboy/redis
WARNING: Your kernel does not support memory swap capabilities. Limitation discarded.
telnet 192.168.190.133 7001
Trying 192.168.190.133...
Connected to 192.168.190.133.
Escape character is '^]'.
set docker awesome
+OK
get docker
$7
awesome
get redis
$-1
docker run -name redis2_server -d -p 192.168.190.133:7002:6379 -m 1g yongboy/redis
docker run -name redis3_server -d -p 192.168.190.133:7003:6379 -m 1g yongboy/redis
docker run -name redis4_server -d -p 192.168.190.133:7004:6379 -m 1g yongboy/redis
docker run -name redis5_server -d -p 192.168.190.133:7005:6379 -m 1g yongboy/redis
yongboy@localhost:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b9d3f5fceb8 yongboy/redis:latest /usr/bin/redis-serve 2 seconds ago Up 1 seconds 192.168.190.133:7005->6379/tcp redis5_server
caf413606999 yongboy/redis:latest /usr/bin/redis-serve 4 seconds ago Up 3 seconds 192.168.190.133:7004->6379/tcp redis4_server
76566b33469a yongboy/redis:latest /usr/bin/redis-serve 4 seconds ago Up 4 seconds 192.168.190.133:7003->6379/tcp redis3_server
4e24a529c5fc yongboy/redis:latest /usr/bin/redis-serve 4 seconds ago Up 4 seconds 192.168.190.133:7002->6379/tcp redis2_server
5e3d9536948a yongboy/redis:latest /usr/bin/redis-serve 19 minutes ago Up 19 minutes 192.168.190.133:7001->6379/tcp redis1_server
灝忕粨
Docker濡備綍鎸佷箙鍖栫姸鎬?/h2>
docker run -i -t -v /host/dir:/container/path ubuntu /bin/bash
VOLUME ["/var/volume1", "/var/volume2"]
COUCH1=$(sudo docker run -d -v /var/lib/couchdb shykes/couchdb:2013-05-03)
COUCH2=$(sudo docker run -d -volumes-from $COUCH1 shykes/couchdb:2013-05-03)
docker save IMAGENAME | bzip2 -9 -c>img.tar.bz2
bzip2 -d -c <img.tar.bz2 | docker load
]]>緙栧啓涓涓狣ockerfile
sudo vim Dockerfile
# VERSION 0.0.1
# 榛樿ubuntu server闀挎湡鏀寔鐗堟湰錛屽綋鍓嶆槸12.04
FROM ubuntu
# 絳懼悕鍟?
MAINTAINER yongboy "yongboy@gmail.com"
# 鏇存柊婧愶紝瀹夎ssh server
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe"> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
# 璁劇疆root ssh榪滅▼鐧誨綍瀵嗙爜涓?23456
RUN echo "root:123456" | chpasswd
# 娣誨姞orache java7婧愶紝涓嬈℃у畨瑁卾im錛寃get錛宑url錛宩ava7錛宼omcat7絳夊繀澶囪蔣浠?
RUN apt-get install python-software-properties
RUN add-apt-repository ppa:webupd8team/java
RUN apt-get update
RUN apt-get install -y vim wget curl oracle-java7-installer tomcat7
# 璁劇疆JAVA_HOME鐜鍙橀噺
RUN update-alternatives --display java
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/environment
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/default/tomcat7
# 瀹瑰櫒闇瑕佸紑鏀維SH 22绔彛
EXPOSE 22
# 瀹瑰櫒闇瑕佸紑鏀綯omcat 8080绔彛
EXPOSE 8080
# 璁劇疆Tomcat7鍒濆鍖栬繍琛岋紝SSH緇堢鏈嶅姟鍣ㄤ綔涓哄悗鍙拌繍琛?
ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D
ENTRYPOINT ["/usr/sbin/sshd"]
CMD ["-D"]
ENTRYPOINT service tomcat7 start #榪愯鍑犵閽熶箣鍚庯紝瀹瑰櫒灝變細閫鍑?
CMD service tomcat7 start #榪愯鍑犵閽熶箣鍚庯紝瀹瑰櫒灝變細閫鍑?
ENTRYPOINT service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
# 鎴栬?
CMD service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
ENTRYPOINT ["/usr/sbin/sshd"]
CMD ["-D"]
鏋勫緩闀滃儚
docker build -t yongboy/java7 .
docker run -d -p 22 -p 8080:8080 yongboy/java7
docker run -d -p 22 -p 8080 yongboy/java7 /bin/sh -c "service tomcat7 start && /usr/sbin/sshd -D"
鎻愪氦/淇濆瓨闀滃儚
docker build -t yongboy/java7 .
docker login
docker push yongboy/java7
docker pull yongboy/java7
灝忕粨
鐜
瀹夎Docker
# 媯鏌ヤ竴涓婣UFS鏄惁宸插畨瑁?
sudo apt-get update
sudo apt-get install linux-image-extra-`uname -r`
# 娣誨姞Docker repository key
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
# 娣誨姞Docker repository錛屽茍瀹夎Docker
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
# 媯鏌ocker鏄惁宸插畨瑁呮垚鍔?
sudo docker version
# 緇堢杈撳嚭 Client version: 0.7.1
Go version (client): go1.2
Git commit (client): 88df052
Server version: 0.7.1
Git commit (server): 88df052
Go version (server): go1.2
Last stable version: 0.7.1
鍘婚櫎鎺塻udo
# 娣誨姞涓涓柊鐨刣ocker鐢ㄦ埛緇?
sudo groupadd docker
# 娣誨姞褰撳墠鐢ㄦ埛鍒癲ocker鐢ㄦ埛緇勯噷錛屾敞鎰忚繖閲岀殑yongboy涓簎buntu server鐧誨綍鐢ㄦ埛鍚?
sudo gpasswd -a yongboy docker
# 閲嶅惎Docker鍚庡彴鐩戞姢榪涚▼
sudo service docker restart
# 閲嶅惎涔嬪悗錛屽皾璇曚竴涓嬶紝鏄惁鐢熸晥
docker version
#鑻ヨ繕鏈敓鏁堬紝鍒欑郴緇熼噸鍚紝鍒欑敓鏁?
sudo reboot
瀹夎涓涓狣ocker榪愯瀹炰緥-ubuntu铏氭嫙鏈?/h2>
docker pull learn/tutorial
docker run learn/tutorial /bin/echo hello world
docker run -i -t learn/tutorial /bin/bash
root@51774a81beb3:/#
apt-get update
apt-get install openssh-server
which sshd
/usr/sbin/sshd
mkdir /var/run/sshd
passwd #杈撳叆鐢ㄦ埛瀵嗙爜錛屾垜榪欓噷璁劇疆涓?23456錛屼究浜嶴SH瀹㈡埛绔櫥闄嗕嬌鐢?
exit #閫鍑?
#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51774a81beb3 learn/tutorial:latest /bin/bash 3 minutes ago Exit 0 thirsty_pasteur
docker commit 51774a81beb3 learn/tutorial
docker run -d -p 22 -p 80:8080 learn/tutorial /usr/sbin/sshd -D
#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
871769a4f5ea learn/tutorial:latest /usr/sbin/sshd -D About a minute ago Up About a minute 0.0.0.0:49154->22/tcp, 0.0.0.0:80->8080/tcp focused_poincare
ssh root@127.0.0.1 -p 49154
# 鍦╱buntu 12.04涓婂畨瑁卭racle jdk 7
apt-get install python-software-properties
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install -y wget
apt-get install oracle-java7-installer
java -version
# 涓嬭澆tomcat 7.0.47
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.47/bin/apache-tomcat-7.0.47.tar.gz
# 瑙e帇錛岃繍琛?
tar xvf apache-tomcat-7.0.47.tar.gz
cd apache-tomcat-7.0.47
bin/startup.sh
curl http://192.168.190.131
灝忕粨
CoreOS瀹gО鏈灝忓寲鐨勫畾鍒剁増linux緋葷粺錛屽叿鏈夛細
systemd錛屼綔涓洪粯璁ょ郴緇熷拰鏈嶅姟綆$悊鍣紝鍏朵紭縐鐗規э細
鏀寔騫惰鍖栦換鍔★紱
鍚屾椂閲囩敤 socket 寮忎笌 D-Bus 鎬葷嚎寮忔縺媧繪湇鍔★紱
鎸夐渶鍚姩瀹堟姢榪涚▼錛坉aemon錛夛紱
鍒╃敤 Linux 鐨?cgroups 鐩戣榪涚▼錛?
鏀寔蹇収鍜岀郴緇熸仮澶嶏紱
緇存姢鎸傝澆鐐瑰拰鑷姩鎸傝澆鐐癸紱
鍚勬湇鍔¢棿鍩轟簬渚濊禆鍏崇郴榪涜綺懼瘑鎺у埗銆?
root鍒嗗尯琚璁℃垚鍙錛岀敤浠ヤ繚璇佹暟鎹殑涓鑷存у拰鏇存柊鍙敤
鐪嬭搗鏉ワ紝榪欎釜緋葷粺鏄負綾諱技浜庢嫢鏈変紬澶氬鉤鍙扮殑IT鍏徃鍑嗗鐨勩傛湇鍔′箣闂達紝綺掑害鍙樺緱寰堢粏銆?
鍒氬垰鍙戝竷絎竴涓?.1.0鐗堟湰錛屽畼鏂規葷粨鐗規у涓嬶細
瑕佹兂浣撻獙錛岀洰鍓嶇湅鏉ワ紝鏈綆鍗曟柟寮忥紝闇瑕佸湪涓涓櫄鎷熺幆澧冧腑灝濊瘯涓鎶婏紝褰撶劧涔熸槸榪欐牱鍋氱殑銆傛湰嬈′綋楠岋紝鍩轟簬Windows 7 64浣嶇郴緇熴備互涓嬩負綆鍗曟楠わ細
瀹夎CoreOS鐜錛屾墦寮windows鍛戒護琛岀幆澧冿細
git clone https://github.com/coreos/coreos-vagrant/
cd coreos-vagrant
vagrant up
vagrant ssh
鎵ц瀹屾瘯 vagrant ssh, 浼氳嚜鍔ㄧ敓鎴愪竴浜泂sh鐨勪竴浜涗俊鎭細
Host: 127.0.0.1
Port: 2222
Username: core
Private key: C:/Users/nieyong/.vagrant.d/insecure_private_key
浣跨敤鐔熸倝鐨凷SH緇堢宸ュ叿鐧婚檰鍗沖彲錛岃繖閲屾帹鑽恱shell錛屼笉鍦ㄧ粏榪般係SH鎴愬姛鐧誨叆錛屽彲浠ョ湅鍒版榪庝俊鎭細
浣撻獙涓鎶?a >Docker浣滀負瀹瑰櫒綆$悊鍣?
榪欓噷蹇熶綋楠屼竴鎶婏紝鏁插叆涓涓嬪懡浠わ細
docker run ubuntu /bin/echo hello world
姝ゆ椂錛岃嚜鍔ㄤ笅杞経buntu緋葷粺瀹瑰櫒闀滃儚鏂囦歡錛?
鏇村Docker鎿嶄綔錛岃鍙傞槄鍏?a >鏂囨。銆?/p>
榪涚▼綆$悊systemd鐨勪竴澶勪嬌鐢ㄨ繖閲屾兂璁╃郴緇熷惎鍔ㄦ椂錛屾墽琛屼竴浜涚畝鍗曚換鍔°傜粓绔笅杈撳叆
sudo -i
鍒囨崲鍒癠buntu ROOT鐢ㄦ埛瑙掕壊涓嬶紝 鎵цvi /media/state/units/hello.service錛屾暡鍏ュ涓嬪唴瀹癸細
[Unit]
Description=My Service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker run ubuntu /bin/sh -c "while true; do echo Hello World; sleep 1; done"
[Install]
WantedBy=local.target
淇濆瓨涔嬪悗錛屾垜浠渶瑕佸仛鍒版ā鎷熼噸鍚細
systemctl restart local-enable.service
鐜板湪鏌ョ湅涓涓嬫棩蹇楋紝鍙互鐪嬪埌鍏惰緭鍑猴細
journalctl -u hello.service -f
鏇村systemd緇嗚妭錛岃鍙傝?a >http://www.freedesktop.org/wiki/Software/systemd/銆?/p>
鎬諱綋鐪嬶紝CoreOS鏈澶х壒鑹詫紝涓撻棬涓哄ぇ瑙勬ā鏈嶅姟鍣ㄩ儴緗插畾鍒剁殑Linux綺劇畝緋葷粺錛屽敖鍙兘鐨勭簿綆鏃犲叧绱ц鐨勫姛鑳斤紝灝嗘搷浣滅郴緇熷拰搴旂敤紼嬪簭瀹屽叏鍒嗙錛屼粠鑰岄檷浣庢搷浣滅郴緇熷拰搴旂敤紼嬪簭鐨勮﹀悎搴︼紝鍚屾椂瑙e喅浜嗙幇鏈塋inux鏈嶅姟鍣ㄥ湪瀹瑰櫒璧勬簮銆佹潈闄愮鐞嗘柟闈㈢殑嬈犵己銆傜洰鍓嶈嫢璇存槸棰犺鎬х殑鎿嶄綔緋葷粺錛屽崄鍒嗙壍寮猴紝鏄笉鏄湭鏉ワ紝涔熶笉濂借錛屼絾鑲畾鏄竴縐嶈秼鍔褲?/p>
鍥犳錛屽崄鍒嗗煎緱鏈熷緟銆?
榪涢樁闃呰錛?br />
蹇欑鐨勪漢鍙互灝辨鐣ヨ繃錛屾湁闂茬殑浜猴紝鍙互嫻垂浜涚┖闂詫紝鐪嬩竴鐪嬫棤鍏崇棝鐥掔殑鏂囧瓧銆?/p>
瀹炴椂Web錛屼竴鑸漢鍙互鐜╁緱璧鳳紝鍙浣犲叿鏈変竴浜汮AVA緙栫▼鐭ヨ瘑錛屽鍔犱竴浜汮S瀹炶返錛屼篃涓嶆槸闅句簨銆?/p>
榪欓噷錛岀畝鍗曡璁′竴涓熀浜?a target="_blank">socketio-netty鐨勫疄鏃禬eb鏁版嵁椹卞姩騫沖彴錛岀敤浠ユ墭綆″疄鏃跺簲鐢紝鍚屾椂涔熸彁渚涗簡鍓嶅悗绔殑璁捐鎬濊礬錛屼粠涓篃鍙互鐪嬪埌澶氱鎴鋒灦鏋勪竴浜涘獎瀛愩?/p>
鑷充簬浠涔堟槸Firebase錛屼粈涔堟槸socketio-netty錛岄偅灝卞彧鏈夎嚜琛岋絿锝忥綇锝囷綄锝呫?/p>
socketio-netty鏀寔澶氫釜namespace錛堟垨璁哥О涓洪閬撴洿涓哄悎閫傦級鐨勬坊鍔狅紝闈欐佸姞杞界ず鑼冿細
<script src="></script>
鍐嶆潵涓涓敤鎴風殑緋葷粺鍚庡彴綆$悊灝卞畬澶囦簡錛?/p>
鍩虹鍔熷仛濂戒箣鍚庯紝寰堟樉鐒訛紝鎮ㄥ凡緇忓疄鐜頒簡涓涓縐熸埛鏋舵瀯鐨勫疄鏃禬EB鏁版嵁椹卞姩騫沖彴錛堝悕澶存湁浜涘ぇ鍝堬級錛屾墭綆$涓夋柟瀹炴椂搴旂敤錛屾湁鐐筆AAS鐨勫懗閬撱傝櫧鐒墮拡瀵圭殑搴旂敤寰堢獎錛屼絾鏇翠笓涓氫簡銆?/p>
鑷充簬璁¤垂錛屽畨鍏紝鏉冮檺絳夛紝鏆傛椂鍙互姝囨瓏錛屾兂澶錛岃蛋涓嶄簡澶氳繙錛屽お绱紝鍙嶈屾垚灝辨劅浼氶檷浣庛傜郴緇熻繘鍖栨紨榪涚殑錛屽ぇ鑰屽叏錛屼笉濡傚皬鑰岀簿銆?/p>
榪欎腑闂達紝闅懼厤闇瑕佸socketio-netty鍋氫竴浜涘畾鍒跺伐浣滐紝浠ラ傚簲搴旂敤瀹炰緥鐨勭鐞嗗伐浣溿?/p>
鑷充簬瀹為檯搴旂敤錛岄渶瑕佹敞鎰忕殑鍦版柟榪樺緢澶氾紝榪欓噷涓嶈繃鏄竴涓畝鍗曟ā鍨嬶紙鍘繪帀浜嗛潪鏍稿績鐨勯儴鍒嗭級鐨勬弿榪幫紝鍜孎irebase娌℃湁鍗婃瘺閽辯殑鍏崇郴銆?/p>
铏界劧璁捐浜嗭紝涓嶇煡閬撳疄闄呮湁娌℃湁浜洪渶瑕佽繖涓笢瑗匡紝甯屾湜涓嶆槸絀轟腑妤奸榿銆?/p>
socketio-netty鏈榪戠殑涓浜涜繘灞曪紙涓庝笂闈㈣璁′笉鐩稿叧錛?