傳統網絡
none網絡
這種網絡模式下容器只有lo迴環網絡,沒有其他網卡。none網絡可以在容器創建時通過–network=none來指定。這種類型的網絡沒有辦法聯網,封閉的網絡能很好的保證容器的安全性。
host網絡
通過命令–network=host指定,使用host模式的容器可以直接使用docker host的IP地址與外界通信,容器內部的服務端口也可以使用宿主機的端口,不需要進行NAT,host最大的優勢就是網絡性能比較好,但是docker host上已經使用的端口就不能再用了,網絡的隔離性不好。
bridge網絡
容器的默認網絡模式,docker在安裝時會創建一個名爲docker0的Linux bridge,在不指定–network的情況下,創建的容器都會默認掛到docker0上面。
container網絡
這個模式指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、端口範圍等。同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過lo網卡設備通信。
總述
根據以上類型的網絡可以定義新的網絡。
默認的橋接網絡沒有docker dns server,在用戶定義的橋接網絡中,可以直接通過“容器名”通信。