**æ¬æåªæ¯å¯¹Dockerçæ¦å¿µåäºè¾ä¸ºè¯¦ç»çä»ç»ï¼å¹¶ä¸æ¶åä¸äºåDockerç¯å¢çå®è£ 以åDockerçä¸äºå¸¸è§æä½åå½ä»¤ã** - [ä¸ å ä»è®¤è¯å®¹å¨å¼å§](#ä¸-å ä»è®¤è¯å®¹å¨å¼å§) - [1.1 ä»ä¹æ¯å®¹å¨?](#11-ä»ä¹æ¯å®¹å¨) - [å æ¥çç容å¨è¾ä¸ºå®æ¹çè§£é](#å æ¥çç容å¨è¾ä¸ºå®æ¹çè§£é) - [忥çç容å¨è¾ä¸ºéä¿çè§£é](#忥çç容å¨è¾ä¸ºéä¿çè§£é) - [1.2 å¾è§£ç©çæº,èææºä¸å®¹å¨](#12-å¾è§£ç©çæºèææºä¸å®¹å¨) - [äº åæ¥è°è° Docker çä¸äºæ¦å¿µ](#äº-忥è°è°-docker-çä¸äºæ¦å¿µ) - [2.1 ä»ä¹æ¯ Docker?](#21-ä»ä¹æ¯-docker) - [2.2 Docker ææ³](#22-docker-ææ³) - [2.3 Docker 容å¨çç¹ç¹](#23-docker-容å¨çç¹ç¹) - [2.4 为ä»ä¹è¦ç¨ Docker ?](#24-为ä»ä¹è¦ç¨-docker-) - [ä¸ å®¹å¨ VS èææº](#ä¸-容å¨-vs-èææº) - [3.1 两è 对æ¯å¾](#31-两è 对æ¯å¾) - [3.2 容å¨ä¸èææºæ»ç»](#32-容å¨ä¸èææºæ»ç») - [3.3 容å¨ä¸èææºä¸¤è æ¯å¯ä»¥å ±åç](#33-容å¨ä¸èææºä¸¤è æ¯å¯ä»¥å ±åç) - [å Dockeråºæ¬æ¦å¿µ](#å-dockeråºæ¬æ¦å¿µ) - [4.1 éå(Image):ä¸ä¸ªç¹æ®çæä»¶ç³»ç»](#41-éåimageä¸ä¸ªç¹æ®çæä»¶ç³»ç») - [4.2 容å¨(Container):éåè¿è¡æ¶çå®ä½](#42-容å¨containeréåè¿è¡æ¶çå®ä½) - [4.3ä»åº(Repository):éä¸åæ¾éåæä»¶çå°æ¹](#43ä»åºrepositoryéä¸åæ¾éåæä»¶çå°æ¹) - [äº æåè°è°:Build Ship and Run](#äº-æåè°è°build-ship-and-run) - [å æ»ç»](#å -æ»ç») > **Docker æ¯ä¸çé¢å ç软件容å¨å¹³å°**ï¼æä»¥æ³è¦ææDockerçæ¦å¿µæä»¬å¿ é¡»å ä»å®¹å¨å¼å§è¯´èµ·ã ## ä¸ å ä»è®¤è¯å®¹å¨å¼å§ ### 1.1 ä»ä¹æ¯å®¹å¨? #### å æ¥çç容å¨è¾ä¸ºå®æ¹çè§£é **ä¸å¥è¯æ¦æ¬å®¹å¨ï¼å®¹å¨å°±æ¯å°è½¯ä»¶æå ææ åååå ï¼ä»¥ç¨äºå¼åã交ä»åé¨ç½²ã** - **容å¨éåæ¯è½»éçã坿§è¡çç¬ç«è½¯ä»¶å ** ï¼å å«è½¯ä»¶è¿è¡æéçææå 容ï¼ä»£ç ãè¿è¡æ¶ç¯å¢ãç³»ç»å·¥å ·ãç³»ç»åºå设置ã - **容å¨å软件éç¨äºåºäºLinuxåWindowsçåºç¨ï¼å¨ä»»ä½ç¯å¢ä¸é½è½å¤å§ç»å¦ä¸å°è¿è¡ã** - **容å¨èµäºäºè½¯ä»¶ç¬ç«æ§**ãï¼ä½¿å ¶å åå¤å¨ç¯å¢å·®å¼ï¼ä¾å¦ï¼å¼åå颿¼ç¯å¢çå·®å¼ï¼çå½±åï¼ä»èæå©äºåå°å¢éé´å¨ç¸ååºç¡è®¾æ½ä¸è¿è¡ä¸å软件æ¶çå²çªã #### 忥çç容å¨è¾ä¸ºéä¿çè§£é **妿éè¦éä¿çæè¿°å®¹å¨çè¯ï¼æè§å¾å®¹å¨å°±æ¯ä¸ä¸ªåæ¾ä¸è¥¿çå°æ¹ï¼å°±å书å å¯ä»¥è£ åç§æå ·ãè¡£æå¯ä»¥æ¾åç§è¡£æãéæ¶å¯ä»¥æ¾åç§éå䏿 ·ãæä»¬ç°å¨æè¯´ç容å¨åæ¾çä¸è¥¿å¯è½æ´ååäºåºç¨æ¯å¦ç½ç«ãç¨åºçè³æ¯ç³»ç»ç¯å¢ã**  ### 1.2 å¾è§£ç©çæº,èææºä¸å®¹å¨ å ³äºèææºä¸å®¹å¨ç对æ¯å¨åé¢ä¼è¯¦ç»ä»ç»å°ï¼è¿éåªæ¯éè¿ç½ä¸çå¾çå æ·±å¤§å®¶å¯¹äºç©çæºãèææºä¸å®¹å¨è¿ä¸è ççè§£ã **ç©çæº**  **èææºï¼**  **容å¨ï¼**  éè¿ä¸é¢è¿ä¸å¼ æ½è±¡å¾ï¼æä»¬å¯ä»¥å¤§æ¦å¯ä»¥éè¿ç±»æ¯æ¦æ¬åºï¼ **容å¨èæåçæ¯æä½ç³»ç»è䏿¯ç¡¬ä»¶ï¼å®¹å¨ä¹é´æ¯å ±äº«åä¸å¥æä½ç³»ç»èµæºçãèææºææ¯æ¯èæåºä¸å¥ç¡¬ä»¶åï¼å¨å ¶ä¸è¿è¡ä¸ä¸ªå®æ´æä½ç³»ç»ãå æ¤å®¹å¨çé离级å«ä¼ç¨ä½ä¸äºã** --- > ç¸ä¿¡éè¿ä¸é¢çè§£é大家对äºå®¹å¨è¿ä¸ªæ¢éçåçæçæ¦å¿µæäºä¸ä¸ªåæ¥ç认è¯ï¼ä¸é¢æä»¬å°±æ¥è°è°Dockerçä¸äºæ¦å¿µã ## äº åæ¥è°è° Docker çä¸äºæ¦å¿µ  ### 2.1 ä»ä¹æ¯ Docker? 说å®è¯å ³äºDockeræ¯ä»ä¹å¹¶å¤ªå¥½è¯´ï¼ä¸é¢æéè¿åç¹åä½ è¯´æDockerå°åºæ¯ä¸ªä»ä¹ä¸è¥¿ã - **Docker æ¯ä¸çé¢å ç软件容å¨å¹³å°ã** - **Docker** ä½¿ç¨ Google å ¬å¸æ¨åºç **Go è¯è¨** è¿è¡å¼åå®ç°ï¼åºäº **Linux å æ ¸** çcgroupï¼namespaceï¼ä»¥åAUFSç±»ç**UnionFS**çææ¯ï¼**对è¿ç¨è¿è¡å°è£ é离ï¼å±äºæä½ç³»ç»å±é¢çèæåææ¯ã** ç±äºé离çè¿ç¨ç¬ç«äºå®¿ä¸»åå ¶å®çé离çè¿ ç¨ï¼å æ¤ä¹ç§°å ¶ä¸ºå®¹å¨ã**Dockeæåå®ç°æ¯åºäº LXC.** - **Docker è½å¤èªå¨æ§è¡é夿§ä»»å¡ï¼ä¾å¦æå»ºåé ç½®å¼åç¯å¢ï¼ä»èè§£æ¾äºå¼å人å以便ä»ä»¬ä¸æ³¨å¨çæ£éè¦çäºæ ä¸ï¼æå»ºæ°åºç软件ã** - **ç¨æ·å¯ä»¥æ¹ä¾¿å°å建å使ç¨å®¹å¨ï¼æèªå·±çåºç¨æ¾å ¥å®¹å¨ã容å¨è¿å¯ä»¥è¿è¡çæ¬ç®¡çãå¤å¶ãå享ãä¿®æ¹ï¼å°±åç®¡çæ®éç代ç 䏿 ·ã**  ### 2.2 Docker ææ³ - **éè£ ç®±** - **æ ååï¼** â è¿è¾æ¹å¼ â¡ å卿¹å¼ ⢠APIæ¥å£ - **é离** ### 2.3 Docker 容å¨çç¹ç¹ - #### è½»é å¨ä¸å°æºå¨ä¸è¿è¡çå¤ä¸ª Docker 容å¨å¯ä»¥å ±äº«è¿å°æºå¨çæä½ç³»ç»å æ ¸ï¼å®ä»¬è½å¤è¿ éå¯å¨ï¼åªéå ç¨å¾å°ç计ç®åå åèµæºãé忝éè¿æä»¶ç³»ç»å±è¿è¡æé çï¼å¹¶å ±äº«ä¸äºå ¬å ±æä»¶ãè¿æ ·å°±è½å°½ééä½ç£çç¨éï¼å¹¶è½æ´å¿«å°ä¸è½½éåã - #### æ å Docker 容å¨åºäºå¼æ¾å¼æ åï¼è½å¤å¨ææä¸»æµ Linux çæ¬ãMicrosoft Windows 以åå æ¬ VMãè£¸æºæå¡å¨åäºå¨å çä»»ä½åºç¡è®¾æ½ä¸è¿è¡ã - #### å®å ¨ Docker èµäºåºç¨çé离æ§ä¸ä» éäºå½¼æ¤é离ï¼è¿ç¬ç«äºåºå±çåºç¡è®¾æ½ãDocker é»è®¤æä¾æå¼ºçé离ï¼å æ¤åºç¨åºç°é®é¢ï¼ä¹åªæ¯å个容å¨çé®é¢ï¼èä¸ä¼æ³¢åå°æ´å°æºå¨ã ### 2.4 为ä»ä¹è¦ç¨ Docker ? - **Docker çéåæä¾äºé¤å æ ¸å¤å®æ´çè¿è¡æ¶ç¯å¢ï¼ç¡®ä¿äºåºç¨è¿è¡ç¯å¢ä¸è´æ§ï¼ä»èä¸ä¼ååºç° âè¿æ®µä»£ç 卿æºå¨ä¸æ²¡é®é¢åâ è¿ç±»é®é¢ï¼ââä¸è´çè¿è¡ç¯å¢** - **å¯ä»¥åå°ç§çº§ãçè³æ¯«ç§çº§çå¯å¨æ¶é´ã大大çè约äºå¼åãæµè¯ãé¨ç½²çæ¶é´ãââæ´å¿«éçå¯å¨æ¶é´** - **é¿å å ¬ç¨çæå¡å¨ï¼èµæºä¼å®¹æåå°å ¶ä»ç¨æ·çå½±åãââé离æ§** - **åäºå¤çéä¸çåçæå¡å¨ä½¿ç¨ååï¼ââå¼¹æ§ä¼¸ç¼©ï¼å¿«éæ©å±** - **å¯ä»¥å¾è½»æçå°å¨ä¸ä¸ªå¹³å°ä¸è¿è¡çåºç¨ï¼è¿ç§»å°å¦ä¸ä¸ªå¹³å°ä¸ï¼èä¸ç¨æ å¿è¿è¡ç¯å¢çåå导è´åºç¨æ æ³æ£å¸¸è¿è¡çæ åµãââè¿ç§»æ¹ä¾¿** - **ä½¿ç¨ Docker å¯ä»¥éè¿å®å¶åºç¨é忥å®ç°æç»éæãæç»äº¤ä»ãé¨ç½²ãââæç»äº¤ä»åé¨ç½²** --- > æ¯å½è¯´èµ·å®¹å¨ï¼æä»¬ä¸å¾ä¸å°å ¶ä¸èææºåä¸ä¸ªæ¯è¾ãå°±æèè¨ï¼å¯¹äºä¸¤è æ æè°è°ä¼å代è°ï¼èæ¯ä¸¤è å¯ä»¥åè°å ±åã ## ä¸ å®¹å¨ VS èææº ããç®åæ¥è¯´ï¼ **容å¨åèææºå ·æç¸ä¼¼çèµæºé离ååé ä¼å¿ï¼ä½åè½ææä¸åï¼å 为容å¨èæåçæ¯æä½ç³»ç»ï¼è䏿¯ç¡¬ä»¶ï¼å æ¤å®¹å¨æ´å®¹æç§»æ¤ï¼æç乿´é«ã** ### 3.1 两è 对æ¯å¾ ããä¼ ç»èææºææ¯æ¯èæåºä¸å¥ç¡¬ä»¶åï¼å¨å ¶ä¸è¿è¡ä¸ä¸ªå®æ´æä½ç³»ç»ï¼å¨è¯¥ç³»ç»ä¸åè¿è¡æéåºç¨è¿ç¨ï¼è容å¨å çåºç¨è¿ç¨ç´æ¥è¿è¡äºå®¿ä¸»çå æ ¸ï¼å®¹å¨å 没æèªå·±çå æ ¸ï¼èä¸ä¹æ²¡æè¿è¡ç¡¬ä»¶èæãå æ¤å®¹å¨è¦æ¯ä¼ ç»èææºæ´ä¸ºè½»ä¾¿.  ### 3.2 容å¨ä¸èææºæ»ç»  - **容卿¯ä¸ä¸ªåºç¨å±æ½è±¡ï¼ç¨äºå°ä»£ç åä¾èµèµæºæå å¨ä¸èµ·ã** **å¤ä¸ªå®¹å¨å¯ä»¥å¨åä¸å°æºå¨ä¸è¿è¡ï¼å ±äº«æä½ç³»ç»å æ ¸ï¼ä½åèªä½ä¸ºç¬ç«çè¿ç¨å¨ç¨æ·ç©ºé´ä¸è¿è¡** ãä¸èææºç¸æ¯ï¼ **容å¨å ç¨ç空é´è¾å°**ï¼å®¹å¨éå大å°éå¸¸åªæå åå ï¼ï¼**ç¬é´å°±è½å®æå¯å¨** ã - **èææº (VM) æ¯ä¸ä¸ªç©çç¡¬ä»¶å±æ½è±¡ï¼ç¨äºå°ä¸å°æå¡å¨åæå¤å°æå¡å¨ã** 管çç¨åºå 许å¤ä¸ª VM å¨ä¸å°æºå¨ä¸è¿è¡ãæ¯ä¸ªVMé½å å«ä¸æ´å¥æä½ç³»ç»ãä¸ä¸ªæå¤ä¸ªåºç¨ãå¿ è¦çäºè¿å¶æä»¶ååºèµæºï¼å æ¤ **å ç¨å¤§é空é´** ãèä¸ VM **å¯å¨ä¹ååç¼æ ¢** ã ããéè¿Dockerå®ç½ï¼æä»¬ç¥éäºè¿ä¹å¤Dockerçä¼å¿ï¼ä½æ¯å¤§å®¶ä¹æ²¡æå¿ è¦å®å ¨å¦å®èææºææ¯ï¼å ä¸ºä¸¤è æä¸åç使ç¨åºæ¯ã**èææºæ´æ é¿äºå½»åºé离æ´ä¸ªè¿è¡ç¯å¢**ãä¾å¦ï¼äºæå¡æä¾åé常éç¨èææºææ¯é离ä¸åçç¨æ·ãè **Dockeré常ç¨äºé离ä¸åçåºç¨** ï¼ä¾å¦å端ï¼åç«¯ä»¥åæ°æ®åºã ### 3.3 容å¨ä¸èææºä¸¤è æ¯å¯ä»¥å ±åç å°±æèè¨ï¼å¯¹äºä¸¤è æ æè°è°ä¼å代è°ï¼èæ¯ä¸¤è å¯ä»¥åè°å ±åã  --- > Dockerä¸é常éè¦çä¸ä¸ªåºæ¬æ¦å¿µï¼çè§£äºè¿ä¸ä¸ªæ¦å¿µï¼å°±çè§£äº Docker çæ´ä¸ªçå½å¨æã ## å Dockeråºæ¬æ¦å¿µ Docker å æ¬ä¸ä¸ªåºæ¬æ¦å¿µ - **éåï¼Imageï¼** - **容å¨ï¼Containerï¼** - **ä»åºï¼Repositoryï¼** çè§£äºè¿ä¸ä¸ªæ¦å¿µï¼å°±çè§£äº Docker çæ´ä¸ªçå½å¨æ  ### 4.1 éå(Image):ä¸ä¸ªç¹æ®çæä»¶ç³»ç» ãã**æä½ç³»ç»åä¸ºå æ ¸åç¨æ·ç©ºé´**ãå¯¹äº Linux èè¨ï¼å æ ¸å¯å¨åï¼ä¼æè½½ root æä»¶ç³»ç»ä¸ºå ¶æä¾ç¨æ·ç©ºé´æ¯æãèDocker éåï¼Imageï¼ï¼å°±ç¸å½äºæ¯ä¸ä¸ª root æä»¶ç³»ç»ã ãã**Docker é忝ä¸ä¸ªç¹æ®çæä»¶ç³»ç»ï¼é¤äºæä¾å®¹å¨è¿è¡æ¶æéçç¨åºãåºãèµæºãé ç½®çæä»¶å¤ï¼è¿å å«äºä¸äºä¸ºè¿è¡æ¶åå¤çä¸äºé ç½®åæ°ï¼å¦å¿åå·ãç¯å¢åéãç¨æ·çï¼ã** éåä¸å å«ä»»ä½å¨ææ°æ®ï¼å ¶å å®¹å¨æå»ºä¹åä¹ä¸ä¼è¢«æ¹åã ããDocker 设计æ¶ï¼å°±å åå©ç¨ **Union FS**çææ¯ï¼å°å ¶è®¾è®¡ä¸º **åå±åå¨çæ¶æ** ã éåå®é æ¯ç±å¤å±æä»¶ç³»ç»èåç»æã ãã**éåæå»ºæ¶ï¼ä¼ä¸å±å±æå»ºï¼åä¸å±æ¯åä¸å±çåºç¡ãæ¯ä¸å±æå»ºå®å°±ä¸ä¼ååçæ¹åï¼åä¸å±ä¸ç任使¹ååªåçå¨èªå·±è¿ä¸å±ã**ãæ¯å¦ï¼å é¤åä¸å±æä»¶çæä½ï¼å®é 䏿¯ççå é¤åä¸å±çæä»¶ï¼èæ¯ä» å¨å½å屿 记为该æä»¶å·²å é¤ã卿ç»å®¹å¨è¿è¡çæ¶åï¼è½ç¶ä¸ä¼çå°è¿ä¸ªæä»¶ï¼ä½æ¯å®é ä¸è¯¥æä»¶ä¼ä¸ç´è·ééåãå æ¤ï¼å¨æå»ºéåçæ¶åï¼éè¦é¢å¤å°å¿ï¼æ¯ä¸å±å°½éåªå å«è¯¥å±éè¦æ·»å çä¸è¥¿ï¼ä»»ä½é¢å¤çä¸è¥¿åºè¯¥å¨è¯¥å±æå»ºç»æåæ¸ çæã ããåå±åå¨çç¹å¾è¿ä½¿å¾éåçå¤ç¨ãå®å¶åçæ´ä¸ºå®¹æãçè³å¯ä»¥ç¨ä¹åæå»ºå¥½çéåä½ä¸ºåºç¡å±ï¼ç¶åè¿ä¸æ¥æ·»å æ°çå±ï¼ä»¥å®å¶èªå·±æéçå å®¹ï¼æå»ºæ°çéåã ### 4.2 容å¨(Container):éåè¿è¡æ¶çå®ä½ ããéåï¼Imageï¼å容å¨ï¼Containerï¼çå ³ç³»ï¼å°±åæ¯é¢å对象ç¨åºè®¾è®¡ä¸ç ç±» å å®ä¾ 䏿 ·ï¼é忝éæçå®ä¹ï¼**容卿¯éåè¿è¡æ¶çå®ä½ã容å¨å¯ä»¥è¢«å建ãå¯å¨ã忢ãå é¤ãæåç** ã ãã**容å¨çå®è´¨æ¯è¿ç¨ï¼ä½ä¸ç´æ¥å¨å®¿ä¸»æ§è¡çè¿ç¨ä¸åï¼å®¹å¨è¿ç¨è¿è¡äºå±äºèªå·±çç¬ç«ç å½å空é´ãåé¢è®²è¿éå使ç¨çæ¯åå±åå¨ï¼å®¹å¨ä¹æ¯å¦æ¤ã** ãã**容å¨åå¨å±ççå卿å容å¨ä¸æ ·ï¼å®¹å¨æ¶äº¡æ¶ï¼å®¹å¨åå¨å±ä¹é乿¶äº¡ãå æ¤ï¼ä»»ä½ä¿åäºå®¹å¨åå¨å±çä¿¡æ¯é½ä¼é容å¨å é¤è丢失ã** ããæç § Docker æä½³å®è·µçè¦æ±ï¼**容å¨ä¸åºè¯¥åå ¶åå¨å±å åå ¥ä»»ä½æ°æ®** ï¼å®¹å¨åå¨å±è¦ä¿ææ ç¶æåã**ææçæä»¶åå ¥æä½ï¼é½åºè¯¥ä½¿ç¨æ°æ®å·ï¼Volumeï¼ãæè ç»å®å®¿ä¸»ç®å½**ï¼å¨è¿äºä½ç½®ç读åä¼è·³è¿å®¹å¨åå¨å±ï¼ç´æ¥å¯¹å®¿ä¸»(æç½ç»åå¨)åç读åï¼å ¶æ§è½åç¨³å®æ§æ´é«ãæ°æ®å·ççå卿ç¬ç«äºå®¹å¨ï¼å®¹å¨æ¶äº¡ï¼æ°æ®å·ä¸ä¼æ¶äº¡ãå æ¤ï¼ **ä½¿ç¨æ°æ®å·åï¼å®¹å¨å¯ä»¥éæå é¤ãéæ° run ï¼æ°æ®å´ä¸ä¼ä¸¢å¤±ã** ### 4.3ä»åº(Repository):éä¸åæ¾éåæä»¶çå°æ¹ ããéåæå»ºå®æåï¼å¯ä»¥å¾å®¹æçå¨å½å宿主ä¸è¿è¡ï¼ä½æ¯ï¼ **妿éè¦å¨å ¶å®æå¡å¨ä¸ä½¿ç¨è¿ä¸ªéåï¼æä»¬å°±éè¦ä¸ä¸ªéä¸çåå¨ãååéåçæå¡ï¼Docker Registryå°±æ¯è¿æ ·çæå¡ã** ããä¸ä¸ª Docker Registryä¸å¯ä»¥å å«å¤ä¸ªä»åºï¼Repositoryï¼ï¼æ¯ä¸ªä»åºå¯ä»¥å å«å¤ä¸ªæ ç¾ï¼Tagï¼ï¼æ¯ä¸ªæ ç¾å¯¹åºä¸ä¸ªéåãæä»¥è¯´ï¼**éåä»åºæ¯Dockerç¨æ¥éä¸åæ¾éåæä»¶çå°æ¹ç±»ä¼¼äºæä»¬ä¹å常ç¨ç代ç ä»åºã** ããé常ï¼**ä¸ä¸ªä»åºä¼å å«åä¸ä¸ªè½¯ä»¶ä¸åçæ¬çéå**ï¼è**æ ç¾å°±å¸¸ç¨äºå¯¹åºè¯¥è½¯ä»¶çåä¸ªçæ¬** ãæä»¬å¯ä»¥éè¿```<ä»åºå>:<æ ç¾>```çæ ¼å¼æ¥æå®å ·ä½æ¯è¿ä¸ªè½¯ä»¶åªä¸ªçæ¬çéåã妿ä¸ç»åºæ ç¾ï¼å°ä»¥ latest ä½ä¸ºé»è®¤æ ç¾.ã **è¿éè¡¥å ä¸ä¸Docker Registry å ¬å¼æå¡åç§æ Docker Registryçæ¦å¿µï¼** ãã**Docker Registry å ¬å¼æå¡** æ¯å¼æ¾ç»ç¨æ·ä½¿ç¨ãå è®¸ç¨æ·ç®¡çéåç Registry æå¡ãä¸è¬è¿ç±»å ¬å¼æå¡å è®¸ç¨æ·å è´¹ä¸ä¼ ãä¸è½½å ¬å¼çéåï¼å¹¶å¯è½æä¾æ¶è´¹æå¡ä¾ç¨æ·ç®¡çç§æéåã ããæå¸¸ä½¿ç¨ç Registry å ¬å¼æå¡æ¯å®æ¹ç **Docker Hub** ï¼è¿ä¹æ¯é»è®¤ç Registryï¼å¹¶æ¥æå¤§éçé«è´¨éç宿¹éåï¼ç½å为ï¼[https://hub.docker.com/](https://hub.docker.com/) ãå¨å½å 访é®**Docker Hub** å¯è½ä¼æ¯è¾æ ¢å½å 乿ä¸äºäºæå¡åæä¾ç±»ä¼¼äº Docker Hub çå ¬å¼æå¡ãæ¯å¦ [æ¶éäºéååº](https://hub.tenxcloud.com/)ã[ç½æäºéåæå¡](https://www.163yun.com/product/repo)ã[DaoCloud éåå¸åº](https://www.daocloud.io/)ã[é¿éäºéååº](https://www.aliyun.com/product/containerservice?utm_content=se_1292836)çã ããé¤äºä½¿ç¨å ¬å¼æå¡å¤ï¼ç¨æ·è¿å¯ä»¥å¨ **æ¬å°æå»ºç§æ Docker Registry** ãDocker 宿¹æä¾äº Docker Registry éåï¼å¯ä»¥ç´æ¥ä½¿ç¨åä¸ºç§æ Registry æå¡ã弿ºç Docker Registry éååªæä¾äº Docker Registry API çæå¡ç«¯å®ç°ï¼è¶³ä»¥æ¯æ docker å½ä»¤ï¼ä¸å½±å使ç¨ãä½ä¸å å«å¾å½¢çé¢ï¼ä»¥åéåç»´æ¤ãç¨æ·ç®¡çãè®¿é®æ§å¶çé«çº§åè½ã --- > Dockerçæ¦å¿µåºæ¬ä¸å·²ç»è®²å®ï¼æåæä»¬è°è°ï¼Build, Ship, and Runã ## äº æåè°è°:Build Ship and Run å¦æä½ æç´¢Dockerå®ç½ï¼ä¼åç°å¦ä¸çåæ ·ï¼**âDocker - Build, Ship, and Run Any App, Anywhereâ**ãé£ä¹Build, Ship, and Runå°åºæ¯å¨å¹²ä»ä¹å¢ï¼  - **Buildï¼æå»ºéåï¼** ï¼ éå就忝éè£ ç®±å æ¬æä»¶ä»¥åè¿è¡ç¯å¢ççèµæºã - **Shipï¼è¿è¾éåï¼** ï¼ä¸»æºåä»åºé´è¿è¾ï¼è¿éçä»åºå°±åæ¯è¶ 级ç 头䏿 ·ã - **Run ï¼è¿è¡éåï¼** ï¼è¿è¡çéåå°±æ¯ä¸ä¸ªå®¹å¨ï¼å®¹å¨å°±æ¯è¿è¡ç¨åºçå°æ¹ã **Docker è¿è¡è¿ç¨ä¹å°±æ¯å»ä»åºæéåæå°æ¬å°ï¼ç¶åç¨ä¸æ¡å½ä»¤æéåè¿è¡èµ·æ¥åæå®¹å¨ãæä»¥ï¼æä»¬ä¹å¸¸å¸¸å°Docker称为ç 头工人æç å¤´è£ å¸å·¥ï¼è¿åDockerçä¸æç¿»è¯æ¬è¿å·¥äººå¦åºä¸è¾ã** ## å æ»ç» æ¬æä¸»è¦æDockerä¸çä¸äºå¸¸è§æ¦å¿µåäºè¯¦ç»çéè¿°ï¼ä½æ¯å¹¶ä¸æ¶åDockerçå®è£ ãéåç使ç¨ã容å¨çæä½çå 容ãè¿é¨åä¸è¥¿ï¼å¸æè¯»è èªå·±å¯ä»¥éè¿é 读书ç±ä¸å®æ¹ææ¡£ç形弿æ¡ã妿è§å¾å®æ¹ææ¡£é 读起æ¥å¾è´¹åçè¯ï¼è¿éæ¨è䏿¬ä¹¦ç±ãDockerææ¯å ¥é¨ä¸å®æç¬¬äºçãã