docker 預設有三種網絡,分别是None ,host,brdge和userdefine network。可以通過下面指令列出來
我們來分别說下幾個網絡
none 網絡:
none 網絡 在docker中 隻有一個localhost的回環位址,不會有 其他的ip,比如用在比較安全的場景,我們可以用它生成密鑰等等
我們來建立一個使用none 網絡的容器
host網絡:
host網絡是和host主機共享網絡,當容器使用了host網絡後,會和host使用一樣的網絡,在docker裡面執行“ip a ”後可以看到和host上所有的網絡。host網絡 的性能比較高,可以在要求性能比較高的場景下使用,當然host網絡的短闆是不靈活,比如不能和host主機使用同一個端口
可以看到容器中已經能看到host的所有網絡
birdge 網絡:
bridge網絡是最常用的網絡,docker 服務本身提供 了一個docker0的網絡
我們建立的容器的裝置會和這個橋上的接口是一對 veth pair。下面我們看怎麼區分是一堆veth pair
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5CNwQjYykTNjljNhJDOwMWNldjNkFWYwQDO1gjYyMWOk9CX3IzLcZDM4EDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLxM3Lc9CX6MHc0RHaiojIsJye.jpg)
這樣就可以找到這對veth pair了
可以用指令看到 網絡的詳細資訊
可以看到每個容器的ip位址
user-define network:
檢視現在的網絡
建立一個bridge網絡
建立網絡時不指定網絡的ip,系統會自動為其配置設定子網和ip,我們現在自己為其指定ip網段
在host 主機檢視我們剛剛建立的橋
我們在建立虛拟機時指定我建立的網絡就好
為容器指定ip位址
[root@docker ~]#
可以看到 我們指定的ip了
我們還可以為容器添加bridge port 首先檢視 docker的網絡
我們為其添加一個網絡
<code>[root@docker ~]# docker network connect my_bridge 1a3f2977da80</code>
再次檢視
可以看到容器已經 存在IP了