青海快3网投—官方网址22270.COM,瀵逛紶缁熷簲鐢ㄨ繘琛屽鍣ㄥ寲鏀归

鏈枃鐢 闄堣鑺 缈昏瘧鑷 FP Complete 缃戠珯涓婄殑鏂囩珷 CONTAINERIZING A LEGACY APPLICATION: AN OVERVIEW锛屽師浣滆 Emanuel Borsboom銆

鏉ユ簮锛氬井淇″叕浼楀彿锛堣鏅崥瀹級

鍘熸枃閾炬帴锛 http://mp.weixin.qq.com/s/0yWIuIwarLiml4MD0pDxMg

浠ヤ笅涓鸿瘧鏂囧叏鏂囷紝濡傞渶闃呰鑻辨枃鍘熸枃锛岃杞埌鏂囨湯鑾峰彇閾炬帴锛

鏈枃鎺ヤ笅鏉ョ畝瑕佷粙缁嶄粈涔堟槸瀹瑰櫒鍖栵紝瑕佸湪 Docker 瀹瑰櫒涓繍琛屼紶缁熷簲鐢ㄧ殑缂樼敱锛屽鍣ㄥ寲鐨勮繃绋嬶紝鍏堕棿鍙兘閬囧埌鐨勯棶棰橈紝鍦ㄧ敤瀹瑰櫒閮ㄧ讲涔嬪悗鐨勫叾浠栨楠ょ瓑銆偳嗪?3网投—官方网址22270.COM杩欏皢鏄庢樉鍑忚交閮ㄧ讲宸ヤ綔鐨勫帇鍔涳紝骞惰搴旂敤鏈濈潃闆跺仠鏈洪儴缃插拰妯悜缂╂斁鐨勬柟鍚戝墠杩涖

娉細鏈枃涓撴敞鍦ㄧ畝鍖栧簲鐢ㄧ殑閮ㄧ讲杩囩▼锛屽苟涓嶅寘鍚渶瑕佸搴旂敤閲嶆柊璁捐鐨勫唴瀹癸紝姣斿楂樺彲鐢ㄥ拰妯悜鎵╁睍銆


姒傚康



浠涔堟槸鈥滀紶缁熲濆簲鐢紵

骞舵病鏈変竴涓壒瀹氱殑瀹氫箟鑳藉鎻忚堪鎵鏈夌殑浼犵粺搴旂敤锛屼絾瀹冧滑鏈変竴浜涘叡鍚岀殑鐗规э細 

  • 浣跨敤鏈湴鏂囦欢绯荤粺鏉ユ寔涔呭寲瀛樺偍锛屾暟鎹枃浠跺拰搴旂敤鐨勬枃浠舵贩鍚堝湪涓璧枫 

  • 鍦ㄥ悓涓涓湇鍔″櫒涓婅繍琛屽緢澶氭湇鍔★紝姣斿 MySQL 鏁版嵁搴擄紝Redis 鏈嶅姟鍣紝nginx web 鏈嶅姟鍣紝涓涓 Ruby on Rails 搴旂敤锛屼互鍙婁竴澶у爢瀹氭椂浠诲姟

  • 浣跨敤澶ф潅鐑╁紡鐨勮剼鏈拰鎵嬪伐娴佺▼杩涜瀹夎鍜屽崌绾э紙鏂囨。涔熷緢绠闄嬶級銆

  • 閰嶇疆鏄瓨鍌ㄥ湪鏂囦欢閲岀殑锛岄氬父鏁h惤鍦ㄥ涓綅缃紝骞朵笌搴旂敤鐨勬枃浠舵贩鍦ㄤ竴璧枫

  • 青海快3网投—官方网址22270.COM杩涚▼闂寸殑閫氫俊鏄熷姪鏈湴鏂囦欢绯荤粺杩涜鐨勶紙姣斿鍦ㄧ鐩樹笂鏀句竴涓枃浠讹紝鍙︿竴涓繘绋嬫潵璇诲彇锛夛紝鑰屼笉鏄疶CP/IP銆

  • 鎸夌収鍗曚釜鏈嶅姟鍣ㄤ笂鍙繍琛屼竴涓簲鐢ㄧ殑绀轰緥鐨勬柟寮忔潵璁捐鐨勩


浼犵粺搴旂敤鐨勭己鐐

  • 鑷姩鍖栭儴缃插緢鍥伴毦銆

  • 濡傛灉闇瑕佽繍琛屽簲鐢ㄧ殑澶氫釜涓嶅悓鐨勫疄渚嬶紝寰堥毦璁╁涓疄渚嬪湪鍚屼竴涓湇鍔″櫒涓娾滃叡瀛樷濄

  • 濡傛灉鏈嶅姟鍣ㄥ仠鏈猴紝鐢变簬闇瑕佹墜宸ユ祦绋嬫墍浠ラ渶瑕佽緝闀跨殑鏃堕棿鏉ユ仮澶嶃

  • 閮ㄧ讲鏂扮増鏈殑杩囩▼鍩烘湰鏄墜鍔ㄧ殑锛屾垨鑰呭ぇ閮ㄥ垎鏄墜鍔ㄧ殑锛岄毦浠ュ洖婊氥

  • 青海快3网投—官方网址22270.COM寰堟湁鍙兘娴嬭瘯鐜涓庣敓浜х幆澧冩湁杈冨ぇ宸紓锛屽鑷翠竴浜涚敓浜х幆澧冮棶棰樹笉鑳藉湪娴嬭瘯鏈熼棿鍙戠幇銆

  • 青海快3网投—官方网址22270.COM寰堥毦閫氳繃澧炲姞鏂扮殑瀹炰緥鏉ヨ繘琛屾í鍚戞墿灞曘

浠涔堟槸瀹瑰櫒鍖栵紵

灏嗗簲鐢ㄢ滃鍣ㄥ寲鈥濈殑杩囩▼锛屽氨鏄搴旂敤鑳藉杩愯鍦 Docker 瀹瑰櫒鎴栫被浼兼妧鏈腑锛屽畠浠兘灏嗘搷浣滅郴缁熺幆澧冨拰搴旂敤灏佽鍦ㄤ竴璧凤紙瀹屾暣鐨勭郴缁熼暅鍍忥級銆傜敱浜庡鍣ㄨ兘缁欏簲鐢ㄦ彁渚涜繎浼间簬瀹屾暣绯荤粺鐨勭幆澧冿紝杩欏氨涓哄湪涓嶄慨鏀癸紝鎴栬呭皯閲忎慨鏀瑰簲鐢ㄧ殑鎯呭喌涓嬶紝瀵瑰簲鐢ㄧ殑閮ㄧ讲杩涜鐜颁唬鍖栨敼閫犳彁渚涗簡涓绉嶆濊矾銆傝繖涔熸槸搴旂敤鐨勬灦鏋勬寔缁兘淇濇寔鈥滀簯鍙嬪ソ鈥濈殑鍩虹銆

瀹瑰櫒鍖栫殑濂藉

  • 閮ㄧ讲瀹规槗澶氫簡锛氫娇鐢ㄦ柊鐨勫鍣ㄩ暅鍍忕洿鎺ユ浛鎹㈡暣涓佺増鏈

  • 鑷姩鍖栭儴缃蹭篃鐩稿瀹规槗锛岀敋鑷冲彲浠ュ畬鍏ㄧ敱 CI锛圕ontinuous Integration, 鎸佺画闆嗘垚锛夋潵椹卞姩銆

  • 閮ㄧ讲澶辫触鏃剁殑鍥炴粴鍙鍒囨崲鍒颁箣鍓嶇殑闀滃儚銆

  • 搴旂敤鍗囩骇闈炲父瀹规槗锛屽洜涓虹幇鍦ㄦ病鏈夊彲鑳藉嚭閿欑殑鈥滀腑闂存楠も濅簡锛堜笉绠″畠鏄惁褰卞搷鏁翠釜閮ㄧ讲杩囩▼鐨勬垚鍔燂級銆

  • 鐩稿悓鐨勫鍣ㄩ暅鍍忓彲浠ュ湪涓嶅悓鐨勭幆澧冧腑鍏呭垎娴嬭瘯锛屽啀鐩存帴閮ㄧ讲鍒扮敓浜х幆澧冦傝繖鍙互纭繚娴嬭瘯鎬佷笌鐢熶骇鎬佺殑浜у搧鏄畬鍏ㄤ竴鑷寸殑銆

  • 绯荤粺鏇村鏄撲粠瀹曟満涓仮澶嶏紝鍥犱负鍙互杩呴熷湪鏂扮‖浠惰祫婧愪笂鍚姩瑁呮湁杩欎釜搴旂敤鐨勬柊瀹瑰櫒锛屽苟闄勫姞鍒板悓涓鏁版嵁婧愪笂銆

  • 寮鍙戜汉鍛樿兘鍦ㄦ湰鍦颁互瀹瑰櫒鐨勫舰寮忥紝鍦ㄦ洿閫肩湡鐨勭幆澧冮噷娴嬭瘯鏂板姛鑳姐

  • 纭欢璧勬簮鐨勫埄鐢ㄦ洿楂樻晥锛屽湪鍗曚竴涓绘満涓婄幇鍦ㄥ彲浠ヨ繍琛屽涓鍣ㄥ簲鐢紝鑰屼互鍓嶄笉鑳姐

  • 瀹瑰櫒鍖栨槸鏀寔闆跺仠鏈哄崌绾с侀噾涓濋泙閮ㄧ讲銆侀珮鍙敤鍜屾í鍚戞墿灞曠殑鍧氬疄鍩虹銆

瀹瑰櫒鍖栦箣澶栫殑閫夋嫨

  • 鐢 Puppet 鍜 Chef 涔嬬被鐨勯厤缃鐞嗗伐鍏凤紝鑳借В鍐充竴閮ㄥ垎鐨勨滀紶缁熲濋棶棰橈紝姣斿鐜涓鑷存х瓑銆備絾瀹冧滑涓嶈兘鏀寔鈥滃師瀛愨濋儴缃诧紝浠ュ強瀵瑰簲鐢+鐜鐨勫畬鏁村洖婊氥傝屼竴绉嶆棤娉曟柟渚垮洖婊氱殑閮ㄧ讲鏂规锛屼粛鐒朵細鍦ㄩ儴缃蹭腑閫斿厖婊¢闄┿

  • 铏氭嫙鏈洪暅鍍忔槸鑳藉疄鐜伴儴鍒嗕笂杩拌兘鍔涚殑鍙︿竴绉嶆柟娉曪紝鑰屼笖鍦ㄦ湁浜涙儏褰腑锛岀浉瀵逛簬瀹瑰櫒锛屼娇鐢ㄥ畬鏁寸殑铏氭満杩涜鈥滃師瀛愬湴鈥濋儴缃蹭細鏇村悎閫傘備絾浣跨敤铏氭満鐨勪富瑕侀棶棰樻槸锛屽畠瀵圭‖浠剁殑鍒╃敤鐜囨洿浣庢晥銆傚洜涓鸿櫄鏈洪渶瑕佷竴浜涚嫭鍗犵殑璧勬簮锛圕PU銆佸唴瀛樺拰纾佺洏绛夛級锛岃屽鍣ㄤ箣闂村彲浠ュ叡浜富鏈虹殑璧勬簮銆


濡備綍瀹瑰櫒鍖



涓銆佸噯澶囧伐浣 

鍒楀嚭瀛樺偍鏁版嵁鐨勬枃浠剁郴缁熶綅缃

鐢变簬閮ㄧ讲鏂扮増鏈簲鐢ㄦ槸閫氳繃鏇挎崲 Docker 闀滃儚瀹炵幇鐨勶紝鎵浠ヤ换浣曟寔涔呭寲鐨勬暟鎹兘搴旇瀛樺偍鍦ㄥ鍣ㄤ箣澶栥傚鏋滆繍姘斾笉閿欑殑璇濓紝鍙兘閬囧埌搴旂敤宸茬粡灏嗘墍鏈夋暟鎹兘鍐欏叆浜嗙壒瀹氫綅缃紝涓嶈繃澶氭暟浼犵粺搴旂敤甯稿皢瀹冧滑鐨勬暟鎹線纾佺洏涓婂埌澶勪贡鍐欙紝杩樻湁鍙兘涓庡簲鐢ㄦ湰韬殑鏂囦欢娣峰湪涓璧枫侱ocker 鐨勫彲鍔犺浇瀛樺偍鍗凤紙volume锛夎涓绘満鐨勬枃浠剁郴缁熻兘鏆撮湶缁欏鍣ㄧ敤浣滅壒瀹氳矾寰勶紝杩欐牱鏁版嵁鍙互鍦ㄥ鍣ㄤ箣闂寸暀瀛樸傛墍浠ワ紝鎴戜滑鏃犺鏄摢绉嶆儏鍐碉紝鎴戜滑閮介渶瑕佸垪鍑虹敤浜庡瓨鍌ㄦ暟鎹殑浣嶇疆銆

鐜板湪浣犲彲浠ヨ冭檻鑰冭檻璁╁簲鐢ㄩ噷鎵鏈夎緭鍑虹殑鏁版嵁鍐欏叆鍒版枃浠剁郴缁熺殑鍚屼竴鐩綍鍘讳簡锛岃繖鏍疯兘鏄庢樉绠鍖栧鍣ㄥ寲鐗堟湰鐨勯儴缃插伐浣溿備笉杩囷紝濡傛灉淇敼搴旂敤闅句互杈炬垚锛岃繖涔熷苟涓嶆槸蹇呴』鐨勩

鎵惧嚭浼氶殢閮ㄧ讲鐜鍙樺寲鐨勯厤缃暟鎹

涓轰簡纭繚涓鑷存э紝鍚屼竴涓暅鍍忚鍦ㄥ濂楃幆澧冧腑浣跨敤锛堟瘮濡傦紝娴嬭瘯鍜岀敓浜э級锛屽洜姝ゅ繀椤昏鍒楀嚭鎵鏈夊湪涓嶅悓鐜涓細鍙樺寲鐨勯厤缃硷紝鍦ㄥ惎鍔ㄥ鍣ㄧ殑鏃跺埢鍐嶈缃笺傚鍣ㄤ腑鐨勭▼搴忓埌鏃跺欏彲浠ヤ粠鐜鍙橀噺锛屾垨鑰呬粠閰嶇疆鏂囦欢涓幏鍙栬繖浜涢厤缃殑鍊笺

浣犲彲浠ョ幇鍦ㄥ氨鑰冭檻淇敼搴旂敤骞舵敮鎸佷粠鐜鍙橀噺涓鍙栭厤缃紝浠ヤ究绠鍖栧鍣ㄥ寲鐨勮繃绋嬨傚悓鏍风殑锛屽鏋滀笉濂戒慨鏀瑰簲鐢紝杩欎篃鏄笉涓瀹氭槸蹇呰鐨勩

鎵惧嚭瀹规槗绉诲嚭鍘荤殑鏈嶅姟

鍦ㄥ悓涓鏈哄櫒涓婏紝鎴戜滑鐨勫簲鐢ㄥ彲鑳借渚濊禆涓浜涘叾浠栨湇鍔★紝瀹冧滑濡傛灉鐙珛鎬ф瘮杈冮珮銆佷娇鐢 TCP/IP 閫氫俊锛屽氨寰堝鏄撹兘绉诲嚭鍘汇備妇渚嬫潵璇达紝濡傛灉鍦ㄥ悓涓鏈哄櫒涓婅繍琛 MySQL 鎴 PostgreSQL 鏁版嵁搴擄紝鎴栬呯被浼 Redis 鐨勭紦瀛橈紝閭e氨瀹规槗绉诲嚭鍘讳簡銆傚彲鑳藉悓鏃惰繕闇瑕佽皟鏁撮厤缃紝鎵嶈兘鏀寔鎸囧畾鏈哄櫒鍚嶏紙hostname锛夊拰绔彛锛坧ort锛夎屼笉鏄洿鎺ヨ涓哄簲鐢ㄨ繍琛屽湪 localhost銆

浜屻佸垱寤哄鍣ㄩ暅鍍

鍒涘缓鐢ㄤ簬瀹夎搴旂敤鐨 Dockerfile

濡傛灉宸茬粡鏈夊熀浜庤剼鏈垨鑰 Chef銆丳uppet 涔嬬被鐨勯厤缃鐞嗗伐鍏风殑鑷姩鍖栧畨瑁呰兘鍔涳紝閭h繖涓繃绋嬪氨寰堢畝鍗曚簡銆傛寫閫変竴涓枩娆㈢殑绯荤粺闀滃儚銆佸畨瑁呮墍鏈変緷璧栵紝鐒跺悗杩愯鑷姩鍖栬剼鏈氨琛屼簡銆

濡傛灉鐩墠鐨勫畨瑁呰繃绋嬫槸鎵嬪姩鐨勶紝灏遍渶瑕佸啓涓浜涜剼鏈簡銆備笉杩囷紝鐢变簬闀滃儚鐨勭姸鎬佹槸宸茬煡鐨勶紝鍦ㄨ繖鍎跨紪鍐欒剼鏈姣斿熀浜庡彲鑳藉瓨鍦ㄤ笉涓鑷存х殑鍘熺敓绯荤粺鏉ョ殑瀹规槗銆

濡傛灉鎻愬墠鎵惧嚭浜嗚绉诲嚭鍘荤殑鏈嶅姟锛岄偅涔堝湪鑴氭湰閲屽氨涓嶅簲璇ュ畨瑁呭畠浠簡銆 

涓嬮潰鏄竴涓畝鍗曠殑绀轰緥 Dockerfile锛

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 鍩轰簬瀹樻柟 Ubuntu 16.04 Docker 闀滃儚
FROM ubuntu:16.04
# 瀹夎鎵渚濊禆鐨 Ubuntu 杞欢鍖
RUN apt-get install -y <REQUIRED UBUNTU PACKAGES> \ 
   && apt-get clean \ 
   && rm -rf /var/lib/apt/lists/*
# 灏嗗簲鐢ㄧ殑鏂囦欢澶嶅埗鍒伴暅鍍忛噷
ADD . /app
# 杩愯瀹夎鑴氭湰
RUN /app/setup.sh
# 鍒囨崲鍒板簲鐢ㄧ殑鐩綍
WORKDIR /app
# 鎸囧畾搴旂敤鐨勫惎鍔ㄨ剼鏈
COMMAND /app/start.sh

鍒朵綔鐢ㄤ簬閰嶇疆鐨勫惎鍔ㄨ剼鏈 

濡傛灉搴旂敤宸茬粡鍦ㄤ娇鐢ㄧ幆澧冨彉閲忎腑璇诲彇閰嶇疆鍊间簡锛岄偅杩欎竴姝ュ彲浠ヨ烦杩囦簡銆傚鏋滆浠庢枃浠堕噷璇诲彇鐗瑰畾鐜鐩稿叧鐨勯厤缃硷紝閭e惎鍔ㄨ剼鏈氨瑕佽兘浠庣幆澧冨彉閲忛噷璇诲彇閰嶇疆鍊硷紝骞跺皢杩欎簺鍊兼洿鏂板埌閰嶇疆鏂囦欢涓幓銆

杩欓噷鏈変竴涓惎鍔ㄨ剼鏈殑渚嬪瓙锛

1
2
3
4
5
6
7
8
#!/usr/bin/env bash
set -e
# 鎶婄幆澧冨彉閲 $MYAPPCONFIG 鐨勫兼坊鍔犲埌閰嶇疆鏂囦欢涓
cat >>/app/config.txt <<END
my_app_config = "${MYAPPCONFIG}"
END
# 鐢ㄧ幆澧冨彉閲 $MYAPPARG 浣滀负搴旂敤鐨勫惎鍔ㄥ弬鏁
/app/bin/my-app --my-arg="${MYAPPARG}"

鎺ㄩ侀暅鍍 

闀滃儚鐢熸垚涔嬪悗锛堜娇鐢 docker build锛夛紝闇瑕佹帹閫佸埌 Docker 浠撳偍锛圧egistry锛変腑鎵嶈兘浠庨儴缃叉満鍣ㄤ笂鎷夊彇鍒帮紙濡傛灉瑕佸湪鐢熸垚闀滃儚鐨勫悓涓鍙版満鍣ㄤ笂杩愯锛屽氨涓嶉渶瑕侊級銆

鍙互浣跨敤 Docker Hub 鏉ュ瓨鍌ㄩ暅鍍忥紙鐢ㄤ粯璐硅处鍙峰彲浠ュ垱寤虹鏈変粨搴擄級锛屽ぇ澶氭暟浜戞湇鍔″晢涔熸彁渚涘鍣ㄤ粨鍌紙姣斿 Amazon ECR锛夈

缁欓暅鍍忚缃爣绛撅紙姣斿 docker tag myimage mycompany/myimage:mytag锛変箣鍚庯紝灏卞彲浠ユ帹閫佸埌浠撳簱浜嗭紙姣斿 docker push mycompany/myimage:mytag锛夈傛瘡娆″湪搴旂敤鏂扮増鏈敓鎴愰暅鍍忔椂鎵撲笂鏂扮殑鏍囩锛岃繖鏍锋棦鑳芥槑纭綋鍓嶆墍杩愯鐨勭増鏈紝杩樿兘淇濈暀鏃х増鏈殑闀滃儚浠ヤ究鍥炴粴銆

涓夈佸浣曢儴缃

閮ㄧ讲瀹瑰櫒鏄釜寰堝ぇ鐨勮瘽棰橈紝鎺ヤ笅鏉ュ彧鍏虫敞鐩存帴浣跨敤 docker 鍛戒护杩愯瀹瑰櫒鐨勯儴鍒嗐傚湪鐜板疄涓栫晫涓紝搴旇鑰冭檻浣跨敤 docker-compose锛堝浜庢墍鏈夊鍣ㄩ兘杩愯鍦ㄥ悓涓鏈哄櫒涓婄殑绠鍗曟儏褰級鍜 Kubernetes 锛堝湪闆嗙兢涓紪鎺掑鍣級涔嬬被鐨勫伐鍏枫

琚Щ鍑烘潵鐨勬湇鍔

鎻愬墠绉诲嚭鏉ョ殑鏈嶅姟鍙互杩愯鍦ㄥ崟鐙殑 Docker 瀹瑰櫒涓紝鐒跺悗閾炬帴锛坙ink锛夊埌鎴戜滑鐨勫簲鐢ㄦ墍鍦ㄥ鍣ㄣ傚彟澶栵紝杩樺彲浠ョ敤浜戜笂鎵樼鐨勬湇鍔°備妇涓緥瀛愶紝鍦 AWS 涓婏紝鍙互浣跨敤 RDS 浣滀负鏁版嵁搴撱佺敤 Elasticache 浣滀负缂撳瓨锛岃繖鏍峰彲浠ユ瀬澶у湴绠鍖栦綘鐨勫伐浣滐紝鍥犱负浠栦滑鑳戒负浣犺В鍐冲悗鏈熺淮鎶わ紝楂樺彲鐢ㄥ拰澶囦唤绛夐渶姹傘

杩愯 Postgres 鏁版嵁搴撳鍣ㄧ殑渚嬪瓙锛

1
2
3
4
docker run -d \
    --name db \
    -v /usr/local/postgresql/data:/var/lib/postgresql/data \
    postgres

瀹瑰櫒鍖栦箣鍚庣殑搴旂敤 

瑕佸湪 Docker 瀹瑰櫒涓繍琛屼竴涓簲鐢紝鍙鐢ㄤ竴涓懡浠よ锛

1
2
3
4
5
6
7
8
docker run -d \
    -p 8080:80 \
    --name myapp \
    -v /usr/local/myappdata:/var/lib/myappdata \
    -e MYAPPCONFIG=myvalue \
    -e MYAPPARG=myarg \
    --link db:db \
    myappimage:mytag

鍏朵腑鐨 -p 鍙傛暟灏嗗鍣ㄩ噷鐨 80 绔彛鍏紑骞舵槧灏勫埌涓绘満涓婄殑 8080 绔彛锛-v 鍙傛暟璁剧疆瑕佸湪瀹瑰櫒閲屽姞杞界殑銆佺敤浜庢寔涔呭寲鏁版嵁鐨勫瓨鍌ㄥ嵎锛堟牸寮忔槸 涓绘満涓婄殑璺緞:瀹瑰櫒涓殑璺緞锛-e 鍙傛暟璁剧疆涓涓敤浜庨厤缃殑鐜鍙橀噺鍊硷紙杩欎簺鍙傛暟鍙互鎸囧畾澶氭锛屼粠鑰岃缃涓嵎鍜岀幆澧冨彉閲忥級锛岃 --link鍙傛暟灏嗘暟鎹簱鎵鍦ㄥ鍣ㄤ互閾炬帴鐨勬柟寮忎紶鍏ワ紝杩欐牱搴旂敤灏卞彲浠ヤ笌鏁版嵁搴撻氫俊浜嗐傚鍣ㄤ細鏍规嵁 Dockerfile 涓殑 COMMAND 鎸囦护鎸囧畾鐨勮剼鏈潵鍚姩銆

瀵瑰簲鐢ㄨ繘琛屽崌绾

濡傛灉瑕佸崌绾у埌搴旂敤鐨勬柊鐗堟湰锛屽彧瑕佸仠鎺夋棫鐗堢殑瀹瑰櫒锛堟瘮濡 docker rm -f myapp锛夛紝骞剁敤鏂扮殑闀滃儚鏍囩鍚姩鏂扮殑瀹瑰櫒灏卞彲浠ヤ簡锛堝彲鑳芥湁鐭殏鐨勫仠鏈烘椂闂达級銆傚洖婊氭搷浣滀篃绫讳技锛屽彧瑕佹崲鐢ㄦ棫鐗堢殑闀滃儚鏍囩銆 


鏇村鐩稿叧鑰冮噺



鈥渋nit鈥 杩涚▼锛圥ID 1锛

浼犵粺搴旂敤閫氬父鏈夊涓繘绋嬶紝濡傛灉娌℃湁 鈥渋nit鈥 瀹堟姢杩涚▼锛圥ID 1锛夌殑娓呯悊锛屽氨瀹规槗鍑虹幇瀛ゅ効杩涚▼锛坥rphan processes锛夊彂鐢熺疮绉殑鎯呭喌浜嗐侱ocker 榛樿骞朵笉鎻愪緵杩欐牱鐨勫畧鎶よ繘绋嬶紝鎵浠ユ帹鑽愯嚜宸辩敤 ENTRYPOINT 鍦 Dockerfile 閲屾坊鍔犱竴涓俤umb-init 鏄紬澶氬垵濮嬪畧鎶よ繘绋嬩腑鐨勬瘮杈冭交閲忕骇鐨勪竴涓俻husion/baseimage 鏄竴涓寘鍚 init 鍒濆瀹堟姢杩涚▼鍜屽叾浠栦竴浜涙湇鍔$殑鍏ㄥ姛鑳藉熀鍑嗛暅鍍忋 璇锋煡鐪嬫垜浠崥瀹笂鍏充簬杩欎釜涓婚鐨勬枃绔狅細Docker 瀹堟姢杩涚▼锛歅ID-1, 瀛ゅ効杩涚▼, 鍍靛案杩涚▼鍜屼俊鍙枫

瀹堟姢杩涚▼鍜屽畾鏃朵换鍔

鍦ㄤ娇鐢 Docker 瀹瑰櫒鏃讹紝涓鑸彧浼氬湪姣忎釜瀹瑰櫒涓繍琛屼竴涓繘绋嬨傜悊鎯虫儏鍐典笅锛屾墍鏈夊畧鎶よ繘绋嬪拰瀹氭椂浠诲姟閮藉簲璇ョЩ鍒板叾浠栧鍣ㄤ腑鍘伙紝涓嶈繃瀵逛簬浼犵粺搴旂敤鏉ワ紝杩欎篃涓嶄竴瀹氶兘琛屽緱閫氾紝涓昏鏄粡甯歌姹傚搴旂敤杩涜閲嶆柊璁捐銆傝杩愯澶氫釜杩涚▼涔熶笉鏄竴瀹氫笉琛岋紝浣嗙‘瀹炰細闇瑕佷竴浜涢澶栫殑涓浜涢厤缃紝鍥犱负鏍囧噯鐨勫熀鍑嗛暅鍍忛噷骞朵笉鍖呭惈杩涚▼绠$悊鍜岃皟搴﹁兘鍔涖傚皬鍨嬭繘绋嬬鐞嗙▼搴忥紝姣斿 runit锛屾瘮 systemd 涔嬬被鐨勫畬鏁村姛鑳界殑瀛愮郴缁熸洿閫傚悎鍦ㄥ鍣ㄤ腑鐢ㄣ俻husion/baseimage 鏄竴涓寘鍚 runit 鍜屽畾鏃惰兘鍔涘拰鍏朵粬涓浜涙湇鍔$殑鍏ㄥ姛鑳藉熀鍑嗛暅鍍忋

瀛樺偍鍗风殑鏉冮檺

鍦ㄥ鍣ㄩ噷锛屾墍鏈夎繘绋嬮氬父閮戒互 root 韬唤杩愯锛堜笉杩囦篃涓嶆槸蹇呴』鐨勶級銆備紶缁熺殑搴旂敤瀵圭敤鎴风殑闇姹傞氬父澶嶆潅涓浜涳紝鍙兘瑕佺敤鍏朵粬鐢ㄦ埛鏉ヨ繍琛岋紙鎴栬呯敤涓嶅悓鐨勭敤鎴疯繍琛屽涓繘绋嬶級銆傝繖鍙兘缁欏瓨鍌ㄥ嵎鐨勪娇鐢ㄥ甫鏉ヤ竴浜涢夯鐑︼紝鍥犱负 Docker 榛樿璁╁姞杞界殑鍗风殑鎵鏈夋潈鎸囧悜 root锛屼篃灏辨槸璇撮潪 root 杩涚▼灏变笉鑳藉啓鍏ュ埌杩欎簺鍗蜂簡銆傛湁涓や釜鏂规硶鍙互瑙e喅杩欎釜闂锛

绗竴绉嶆柟寮忔槸鍦ㄥ湪鍒涘缓瀹瑰櫒涔嬪墠锛屽厛鍦ㄤ富鏈轰笂鍒涘缓濂界洰褰曪紝鐢辨湁姝g‘鐨 UID/GID 鐨勭敤鎴锋寔鏈夋墍鏈夋潈銆傛敞鎰忥紝鐢变簬瀹瑰櫒閲屽拰涓绘満涓婄殑鐢ㄦ埛涓嶈兘鍖归厤锛屾墍浠ラ渶瑕佺敤瀹瑰櫒閲岀敤鎴风殑 UID/GID锛岃屼笉浠呬粎鏄敤鎴峰悕瑕佷竴鑷淬 

鍙︿竴绉嶆柟寮忔槸鍦ㄥ鍣ㄩ噷锛屽湪鍚姩杩囩▼涓皟鏁村姞杞界偣鐨勬墍鏈夋潈銆傝繖灏遍渶瑕佸湪鍒囨崲鍒扮敤鏉ュ惎鍔ㄥ簲鐢ㄧ殑闈 root 鐢ㄦ埛涔嬪墠锛岃繕鍦ㄤ互 root 韬唤杩愯鏈熼棿澶勭悊銆

鏁版嵁搴撹縼绉

鏁版嵁搴撶粨鏋勮縼绉诲湪閮ㄧ讲宸ヤ綔涓粡甯告槸涓澶ф寫鎴橈紝鍥犱负鏁版嵁搴撶粨鏋勯氬父涓庡簲鐢ㄦ槸涓ユ牸鑰﹀悎鐨勶紝杩欏杩佺Щ鐨勬椂鏈烘彁鍑轰簡瑕佹眰锛岃屼笖杩欎篃璁╁洖婊氬埌鏃х増鏈彉寰楁洿闅撅紝鍥犱负鏁版嵁搴撹縼绉诲苟涓嶄竴瀹氬鏄撳洖婊氥

瀹屾垚杩欑杩佺Щ鐨勬柟娉曟槸寮曞叆涓涓繃娓℃楠ゃ傚鏋滈渶瑕佸鏁版嵁搴撶粨鏋勫仛鍑轰笌鏃х増鏈笉鍏煎鐨勫彉鏇达紝閭e氨灏嗚繖涓彉鏇村垎涓轰袱娆¢儴缃层傛瘮濡傦紝濡傛灉鎯冲皢鏁版嵁绉诲埌鍙︿竴澶勶紝涓や釜姝ラ鏄細

灏嗘暟鎹悓鏃跺啓鍏ユ棫鐨勪綅缃拰鐨勪綅缃紝骞跺彧浠庢柊鐨勪綅缃鍙栥傝繖鎰忓懗鐫锛屽鏋滄妸搴旂敤鍥炴粴鍒板墠涓涓増鏈紝鍦ㄥ洖婊氫箣鍓嶆柊浜х敓鐨勬柊鏁版嵁鏄笉浼氫涪鐨勩 

涓嶅啀鍚戞棫鐨勪綅缃啓鍏ユ暟鎹 瑕佹敞鎰忕殑鏄紝濡傛灉甯屾湜閮ㄧ讲鏈熼棿娌℃湁鍋滄満鏃堕棿锛屽氨鎰忓懗鐫鍦ㄥ悓涓鏃堕棿浼氭湁搴旂敤鐨勫涓増鏈湪杩愯锛岀浉搴旂殑涔熶細甯︽潵鏇村鎸戞垬銆

鏁版嵁澶囦唤

瀵瑰鍣ㄥ寲鐨勫簲鐢ㄨ繘琛屽浠介氬父姣旇緝绠鍗曘傛暟鎹枃浠跺彲浠ヤ粠涓绘満涓婂浠斤紝鑰屼笉闇瑕佹媴蹇冩暟鎹細涓庡簲鐢ㄧ▼搴忕殑鏂囦欢娣峰湪涓璧凤紝鍥犱负瀹冧滑宸茬粡涓ユ牸鍦板垎寮浜嗐傚鏋滃皢鏁版嵁搴撹縼绉诲埌浜嗗儚 RDS 杩欐牱鐨勬墭绠℃湇鍔★紝浠栦滑灏变細澶勭悊濂藉浠斤紙鑷冲皯鑷繁鐨勫伐浣滀細绠鍖栦竴浜涳級銆

杩佺Щ宸叉湁鏁版嵁

鍦ㄧ敓浜х幆澧冧腑锛岃鎶婄幇鏈夊簲鐢ㄨ縼鍚戝鍣ㄥ寲鐨勭増鏈紝灏遍渶瑕佸鏃х殑宸叉湁鏁版嵁杩涜杩佺Щ銆傝繖涓伐浣滃線寰鍥犲湴鍒跺疁锛屼笉杩囨渶绠鍗曠殑灏辨槸鍋滄帀鏃х増鏈紝鎶婃暟鎹浠界洿鎺ユ仮澶嶇粰鏂扮増鏈敤銆傝繖涓繃绋嬪簲璇ユ彁鍓嶅仛濂斤紝涔熶笉鍙伩鍏嶅湴浼氶渶瑕佷竴瀹氱殑鍋滄満鏃堕棿銆


缁撹



铏界劧鎻愬墠闇瑕佸仛涓浜涘伐浣滐紝瀵逛紶缁熺殑搴旂敤杩涜瀹瑰櫒鍖栫殑杩囩▼浼氬府鍔╂垜浠洿濂藉湴瀵瑰畠杩涜绠℃帶鍜岃嚜鍔ㄥ寲锛岃兘鎶婇儴缃茬殑鍘嬪姏闄嶅埌鏈浣庛傚畠缁欏搴旂敤杩涜鐜颁唬鍖栨敼閫犳彁渚涗簡涓涓槑纭殑璺緞锛屽苟鑳芥敮鎸侀浂鍋滄満閮ㄧ讲銆侀珮鍙敤鍜屾í鍚戞墿灞曘

闄や簡浠庨浂寮濮嬫瀯寤哄鍣ㄥ寲搴旂敤锛孎P Complete 宸茬粡澶氭寮灞曚簡涓婅堪瀹炶返銆傚鏋滀綘鎯充簡瑙h繄鍚戠幇浠e寲銆佹棤鍘嬪姏閮ㄧ讲涔嬭矾锛屽彲浠ヤ簡瑙d竴涓嬫垜浠殑 DevOps 鍜屽挩璇㈡湇鍔★紝鎴栫洿鎺ヨ仈绯绘垜浠

鑻辨枃鍘熸枃锛堣鎵嬪姩澶嶅埗锛夛細 http://www.fpcomplete.com/blog/2017/01/containerize-legacy-app


0
鐩稿叧鏂囩珷