Docker使用了Linux的Namespaces技術(shù)來進(jìn)行資源隔離,如PID Namespace隔離進(jìn)程绕沈,Mount Namespace隔離文件系統(tǒng)锐想,Network Namespace隔離網(wǎng)絡(luò)等。一個Network Namespace提供了一份獨立的網(wǎng)絡(luò)環(huán)境七冲,包括網(wǎng)卡痛倚、路由、Iptable規(guī)則等都與其他的Network Namespace隔離澜躺。
網(wǎng)絡(luò)是Docker中相對比較薄弱的部分蝉稳,當(dāng)安裝完Docker時耘戚,它會自動創(chuàng)建三個網(wǎng)絡(luò)操漠。可以使用以下docker network ls命令列出這些網(wǎng)絡(luò)
docker network ls
結(jié)果如下
NETWORK ID NAME DRIVER SCOPE
594430d2d4bb bridge bridge local
d855b34c5d51 host host local
b1ecee29ed5e none null local
Docker內(nèi)置這三個網(wǎng)絡(luò)撞秋,運行容器時吻贿,可以使用該來指定容器應(yīng)連接到哪些網(wǎng)絡(luò)哑子。
在使用docker run創(chuàng)建Docker容器時,可以用--network標(biāo)志 選項指定容器的網(wǎng)絡(luò)模式帐要,Docker有以下4種網(wǎng)絡(luò)模式:
host模式:使用 --net=host 指定弥奸。
none模式:使用 --net=none 指定。
bridge模式:使用 --net=bridge 指定冒冬,默認(rèn)設(shè)置。
container模式:使用 --net=container:NAMEorID 指定。
默認(rèn)的橋接模式摇幻,不同docker容器網(wǎng)絡(luò)是不互通的。