容器之間可通過 IP,Docker DNS Server 或 joined 容器三種方式通信。
IP 通信
從上一節(jié)的例子可以得出這樣一個(gè)結(jié)論:兩個(gè)容器要能通信,必須要有屬于同一個(gè)網(wǎng)絡(luò)的網(wǎng)卡。
滿足這個(gè)條件后,容器就可以通過 IP 交互了。具體做法是在容器創(chuàng)建時(shí)通過 --network
指定相應(yīng)的網(wǎng)絡(luò),或者通過 docker network connect
將現(xiàn)有容器加入到指定網(wǎng)絡(luò)。可參考上一節(jié) httpd 和 busybox 的例子,這里不再贅述。
Docker DNS Server
通過 IP 訪問容器雖然滿足了通信的需求,但還是不夠靈活。因?yàn)槲覀冊(cè)诓渴饝?yīng)用之前可能無法確定 IP,部署之后再指定要訪問的 IP 會(huì)比較麻煩。對(duì)于這個(gè)問題,可以通過 docker 自帶的 DNS 服務(wù)解決。