目前都只有從 container 公開 port 並綁定到本機,使得 container 內的服務 publish 到 host machine 所在的外網上
今天來看看內部網路
在本機安裝docker 時,會創建一個新的網路接口,docker0。每個 container 都會在此接口上分配一個 ip 位址
docker 每創建一個 container ,就會創建一組互聯的網路接口,一端作為 container 內的 eth 接口(以太),
另一端為 VETH(Virtual Ethernet ) veth* 作為host machine 的port,可以把 veth port 認為是虛擬網路的一端。
圖片來源 https://godleon.github.io/blog/Docker/docker-network-overview/
這個虛擬網路一端插在 docker0 的 橋接器上,另一端則是插在 container 上,透過把給個 veth* port綁到 docker0 橋接器,docker 建立了一個虛擬子網,由 host machine 和所有的 container 共享。
看看橋接器
docker network inspect bridge
或是也可以在 container 內下指令
ip a show eth0