云計(jì)算核心技術(shù)Docker教程:Docker配置網(wǎng)絡(luò)概述
Docker容器和服務(wù)如此強(qiáng)大的原因之一是您可以將它們連接在一起,或?qū)⑺鼈冞B接到非Docker工作負(fù)載。Docker容器和服務(wù)甚至不需要知道它們已部署在Docker上,也不必知道它們的對(duì)等對(duì)象是否也是Docker工作負(fù)載。無論您的Docker主機(jī)是運(yùn)行Linux,Windows還是兩者結(jié)合使用,您都可以使用Docker以與平臺(tái)無關(guān)的方式管理它們。
網(wǎng)絡(luò)驅(qū)動(dòng)器
Docker的網(wǎng)絡(luò)子系統(tǒng)可使用驅(qū)動(dòng)程序插入。默認(rèn)情況下,有幾個(gè)驅(qū)動(dòng)程序,它們提供核心聯(lián)網(wǎng)功能:
bridge:默認(rèn)的網(wǎng)絡(luò)驅(qū)動(dòng)程序。如果您未指定驅(qū)動(dòng)程序,則這是您正在創(chuàng)建的網(wǎng)絡(luò)類型。當(dāng)您的應(yīng)用程序在需要通信的獨(dú)立容器中運(yùn)行時(shí),通常會(huì)使用網(wǎng)橋網(wǎng)絡(luò)。請(qǐng)參閱 網(wǎng)橋網(wǎng)絡(luò)。
host:對(duì)于獨(dú)立容器,請(qǐng)刪除容器與Docker主機(jī)之間的網(wǎng)絡(luò)隔離,然后直接使用主機(jī)的網(wǎng)絡(luò)。請(qǐng)參閱 使用主機(jī)網(wǎng)絡(luò)。
overlay:覆蓋網(wǎng)絡(luò)將多個(gè)Docker守護(hù)程序連接在一起,并使群集服務(wù)能夠相互通信。您還可以使用覆蓋網(wǎng)絡(luò)來促進(jìn)群集服務(wù)和獨(dú)立容器之間或不同Docker守護(hù)程序上的兩個(gè)獨(dú)立容器之間的通信。這種策略消除了在這些容器之間進(jìn)行操作系統(tǒng)級(jí)路由的需要。請(qǐng)參閱疊加網(wǎng)絡(luò)。
macvlan:Macvlan網(wǎng)絡(luò)允許您為容器分配MAC地址,使其在網(wǎng)絡(luò)上顯示為物理設(shè)備。Docker守護(hù)程序通過其MAC地址將流量路由到容器。macvlan 在處理希望直接連接到物理網(wǎng)絡(luò)而不是通過Docker主機(jī)的網(wǎng)絡(luò)堆棧進(jìn)行路由的舊應(yīng)用程序時(shí),使用驅(qū)動(dòng)程序有時(shí)是最佳選擇。請(qǐng)參閱 Macvlan網(wǎng)絡(luò)。
none:對(duì)于此容器,請(qǐng)禁用所有聯(lián)網(wǎng)。通常與自定義網(wǎng)絡(luò)驅(qū)動(dòng)程序一起使用。none不適用于群體服務(wù)。請(qǐng)參閱 禁用容器聯(lián)網(wǎng)。
網(wǎng)絡(luò)插件:您可以在Docker中安裝和使用第三方網(wǎng)絡(luò)插件。這些插件可從 Docker Hub 或第三方供應(yīng)商處獲得。有關(guān)安裝和使用給定網(wǎng)絡(luò)插件的信息,請(qǐng)參閱供應(yīng)商的文檔。
網(wǎng)絡(luò)驅(qū)動(dòng)程序摘要
當(dāng)您需要多個(gè)容器在同一Docker主機(jī)上進(jìn)行通信時(shí),最好使用用戶定義的網(wǎng)橋網(wǎng)絡(luò)。
當(dāng)網(wǎng)絡(luò)堆棧不應(yīng)與Docker主機(jī)隔離時(shí),但您希望將容器的其他方面隔離,則主機(jī)網(wǎng)絡(luò)是最佳選擇。
當(dāng)您需要在不同Docker主機(jī)上運(yùn)行的容器進(jìn)行通信時(shí),或者當(dāng)多個(gè)應(yīng)用程序使用集群服務(wù)一起工作時(shí),覆蓋網(wǎng)絡(luò)是最佳的選擇。
從VM設(shè)置遷移或需要容器看起來像網(wǎng)絡(luò)上的物理主機(jī)時(shí),Macvlan網(wǎng)絡(luò)是最好的,每個(gè)主機(jī)都有一個(gè)唯一的MAC地址。
第三方網(wǎng)絡(luò)插件使您可以將Docker與專用網(wǎng)絡(luò)堆棧集成。