四種網絡模式:
(推薦教程:docker教程)
host模式
container模式
none模式
bridge模式
docker?run?-it?--rm?--net=host?centos_with_net?bash
使用–net=container:container_id/container_name,多個容器使用共同的網絡看到的ip是一樣。
使用–net=none指定,這種模式下不會配置任何網絡。
使用–net=bridge指定,不用指定默認就是這種網絡模式。這種模式會為每個容器分配一個獨立的Network Namespace。類似于Vmware的nat網絡模式。同一個宿主機上的所有容器會在同一個網段下,相互之間是可以通信的。
host模式
如果啟動容器的時候使用host模式,那么這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Network Namespace。容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主機的IP和端口。
但是,容器的其他方面,如文件系統、進程列表等還是和宿主機隔離的。
container模式
Container模式指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、端口范圍等。
同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過lo網卡設備通信。
none模式
使用none模式,Docker容器擁有自己的Network Namespace,但是,并不為Docker容器進行任何網絡配置。也就是說,這個Docker容器沒有網卡、IP、路由等信息。需要我們自己為Docker容器添加網卡、配置IP等。
bridge模式
bridge模式是Docker默認的網絡設置,此模式會為每一個容器分配Network Namespace、設置IP等,并將一個主機上的Docker容器連接到一個虛擬網橋上。