一、實現(xiàn)原理
?????? Docker使用Linux橋接(參考《Linux虛擬網(wǎng)絡(luò)技術(shù)》),在宿主機虛擬一個Docker容器網(wǎng)橋(docker0),Docker啟動一個容器時會根據(jù)Docker網(wǎng)橋的網(wǎng)段分配給容器一個IP地址,稱為Container-IP暑劝,同時Docker網(wǎng)橋是每個容器的默認網(wǎng)關(guān)。因為在同一宿主機內(nèi)的容器都接入同一個網(wǎng)橋颗搂,這樣容器之間就能夠通過容器的Container-IP直接通信担猛。
??????? Docker網(wǎng)橋是宿主機虛擬出來的,并不是真實存在的網(wǎng)絡(luò)設(shè)備丢氢,外部網(wǎng)絡(luò)是無法尋址到的傅联,這也意味著外部網(wǎng)絡(luò)無法通過直接Container-IP訪問到容器。如果容器希望外部訪問能夠訪問到疚察,可以通過映射容器端口到宿主主機(端口映射)蒸走,即docker run創(chuàng)建容器時候通過 -p 或 -P 參數(shù)來啟用,訪問容器的時候就通過[宿主機IP]:[容器端口]訪問容器貌嫡。