å¨ä½¿ç¨Dockeré¨ç½²åºç¨æ¶ï¼Dockeræ¨èçæ¹å¼æ¯å°åºç¨åå ¶æä¾èµçæå¡ï¼MySQLï¼Redisçï¼å使ç¨Dockeré¨ç½²ï¼å¹¶éè¿linkæèªå®ä¹ç½ç»ç¸è¿æ¥ã使¯ï¼å½åºç¨æä¾èµçæå¡è¢«å®è£ å¨å®¿ä¸»æºä¸æ¶ï¼æä»¬éè¦è®©å®¹å¨ä¸çåºç¨è½å¤è®¿é®å°é¨ç½²å¨å®¿ä¸»æºä¸çæå¡ãæ¬æå°ä»ç»å®ç°è¿ä¸ç®ççå ç§æ¹æ¡ï¼å¹¶åæå ¶ä¼ç¼ºç¹ã
é¦å æä»¬éè¦äºè§£ä¸äºå ³äºDockerç½ç»çåºç¡ç¥è¯ã
Dockerç½ç» Dockeræä¾äº5ç§ç½ç»ç±»åï¼è¿éä»ç»å ¶ä¸å¸¸è§ç两ç§ï¼bridgeåhost
Bridge
Bridgeæ¯Dockeré»è®¤ä½¿ç¨çç½ç»ç±»åãå¦å¾ï¼ç½ç»ä¸çææå®¹å¨å¯ä»¥éè¿IPäºç¸è®¿é®ãBridgeç½ç»éè¿ç½ç»æ¥å£docker0 ä¸ä¸»æºæ¡¥æ¥ï¼å¯ä»¥å¨ä¸»æºä¸éè¿ifconfig docker0æ¥çå°è¯¥ç½ç»æ¥å£çä¿¡æ¯ã
Host Host模å¼ä¸ï¼å®¹å¨çç½ç»æ¥å£ä¸ä¸å®¿ä¸»æºç½ç»é离ãå¨å®¹å¨ä¸çå¬ç¸åºç«¯å£çåºç¨è½å¤ç´æ¥è¢«ä»å®¿ä¸»æºè®¿é®ãhostç½ç»ä» æ¯æLinuxã
æ¹æ¡
æ¹æ¡1ï¼ä½¿ç¨host模å¼
éè¿docker run å¯å¨å®¹å¨æ¶å å
¥--net=host åæ°ï¼æå¨composeæä»¶ä¸æå®network_mode: "host" ï¼ä¾å¦ï¼
version: '3'
services:
foo:
container_name: "foo"
image: "foo/bar"
ports:
- "8000:8000"
network_mode: "host"
restart: always
è¯¥åæ°æå®è¯¥å®¹å¨ä½¿ç¨hostç½ç»æ¨¡å¼ï¼å æ¤ä¹æ éæ å°ç«¯å£ã
ä¼ç¹
缺ç¹
æ¹æ¡2ï¼ä½¿ç¨docker0ç½ç»çé»è®¤ç½å ³å°å å¨é»è®¤çbridge模å¼ä¸ï¼docker0ç½ç»çé»è®¤ç½å ³å³æ¯å®¿ä¸»æºãå¨Linuxä¸ï¼docker0ç½ç»é常ä¼åé ä¸ä¸ª172.17.0.0/16çç½æ®µï¼å ¶ç½å ³é常为172.17.0.1ï¼macOSä¸çç½æ®µå为192.168.65.0/24ï¼ç½å ³ä¸º192.168.65.1ãå¨å®¹å¨ä¸ä½¿ç¨è¯¥IPå°åå³å¯è®¿é®å®¿ä¸»æºä¸çåç§æå¡ã
éè¦æ³¨æçæ¯ï¼è¿ç§æ åµä¸ï¼ç»ç±docker0ç½æ¡¥èæ¥çæµéä¸ç»è¿å®¿ä¸»æºçæ¬å°åç¯ï¼å æ¤éè¦å°å®¿ä¸»æºä¸çåºç¨ï¼MySQLï¼Redisçï¼é 置为çå¬0.0.0.0ã
ä¼ç¹
缺ç¹
æ¹æ¡3ï¼Dockeræä¾çæå宿主æºçDNS
macOSçDockeræä¾äºä¸ä¸ªæå宿主æºçåådocker.for.mac.host.internal ãå¨éè¦è®¿é®å®¿ä¸»æºæå¡æ¶ä½¿ç¨æ¤ååå³å¯ãå
¶å®ç°åçæäººè¿è¡äºå¦ä¸ç ç©¶ï¼
Understanding the ‘docker.for.mac.localhost’ behavior – Docker Desktop for Mac – Docker Forums
ä¼ç¹
缺ç¹
æ¹æ¡4ï¼å¨å®¹å¨ä¸è·å宿主æºå°å å¨DockerfileçCMDé¨åæ·»å å¦ä¸ä¸æ¡å½ä»¤ï¼
ip -4 route list match 0/0 | awk â{print $3 âhost.docker.internalâ}â >> /etc/hosts
ip -4 route list match 0/0 å½ä»¤ä¼ååºå½åç³»ç»çé»è®¤ç½å
³ï¼å¹¶å°host.docker.internal ååè§£æè³å®ã
请注æipå½ä»¤å¹¶ä¸ä¸å®ééåé带ï¼å¦ææ²¡æçè¯ï¼ä½¿ç¨apt install iproute2 å®è£
ã
ä¼ç¹
缺ç¹
åèèµæ é ç½® docker0 ç½æ¡¥ · Docker ââ ä»å ¥é¨å°å®è·µ
networking – What is the relation between docker0 and eth0? – Stack Overflow
Dockerçæ¡¥æ¥ç½ç»æ¯æä¹å·¥ä½ç | æç¨åºåæ¹åä¸ç
Docker â add host.docker.internal on linux
docker 跨主æºç½ç»ï¼overlay ç®ä» | Cizixs Write Here