Docker 容器與 swarm 集羣實戰——docker 網絡模式

一、基本網絡配置

1.查看doeker網絡的信息
bridge、host、null
在這裏插入圖片描述
安裝橋接服務:
[root@server1 ~]# yum install -y bridge-utils
此時會發現docker0的橋接信息
在這裏插入圖片描述
測試:
在擁有ubuntu鏡像的基礎上:

[root@server1 ~]# docker run -it --name vm1 ubuntu
在這裏插入圖片描述

不關閉退出,並且此時查看server1的物理機網絡信息
在這裏插入圖片描述

此時在server2上ping不同,因爲容器是隔離的
在這裏插入圖片描述
在這裏插入圖片描述
2.docker network 3種模式的設定

  • host

連上vm1,不關閉退出
在這裏插入圖片描述

用host網絡模式創建vm2
[root@server1 ~]# docker run -it --name vm2 --net host ubuntu
在這裏插入圖片描述

此時在server2可以ping
在這裏插入圖片描述

在server1上獲取nginx鏡像:並且建立vm2

運行一個vm2:(不能-p影射端口,因爲此時和物理機server1共享網絡)
[root@server1 ~]# docker run -d --name vm2 --net host nginx
e66e8774cdf912a085f3acaa6c8bf0e89e0afb03ceb76916af3d1e26d729c6fc

在這裏插入圖片描述
此時nginx開啓,在server2上可以查看
在這裏插入圖片描述

  • null

[root@server1 ~]# docker run -it --name vm3 --net none ubuntu
在這裏插入圖片描述

將vm3刪除,重新運行
[root@server1 ~]# docker run -it --name vm3 --net container:vm1 ubuntu
在這裏插入圖片描述
注意:此時網絡和vm1同

link 的作用:(自己生成解析文件)
在這裏插入圖片描述
如果不加link:不會自動生成解析
在這裏插入圖片描述

二、高級網絡配置

在這裏插入圖片描述

docker提供了3種自定義網絡驅動:
bdidge、overlay、macvlan

查看手冊:[root@server1 ~]# docker network create --help
在這裏插入圖片描述

創建自定義網絡驅動:默認是bridge

[root@server1 ~]# docker network create -d bridge mynet
33990305dd6bc45bd49687f56d25fc24b2523a166e5e1aa0763bf317c9dcb9be

在這裏插入圖片描述

將mynet刪除後,自定的網絡驅動就刪除了
[root@server1 ~]# docker network rm mynet
在這裏插入圖片描述

  • bridge 舉例

創建網段下的網卡驅動
在這裏插入圖片描述

[root@server1 ~]# docker network create -d bridge --subnet 172.73.26.0/24 --gateway 172.73.26.1 mynet1
46dbdb19dda5b162f3862c97dac60d0fdf51268a0e5566ee12e18e12abd0ba2a

創建此網卡驅動下的vm1
[root@server1 ~]# docker run -it --name vm1 --net mynet1 --ip 172.73.26.10 ubuntu
在這裏插入圖片描述
此時serve2上
在這裏插入圖片描述

在server2上創建網卡(此處和server1相同,因爲不在同一主機)
在這裏插入圖片描述

在server2上創建vm1
在這裏插入圖片描述

注意:此時不同主機還是不能進行通信,但是同一主機的不同容器之間可以

在server1上:
建一個vm2:在mynet1上:
在這裏插入圖片描述

如何使不同網橋的容器進行通訓??

情況演示:單機不同網橋下此時不能通信
在server1上:建立mynet2
在這裏插入圖片描述

創建一個vm3:
在這裏插入圖片描述
[root@server1 ~]# docker run -it --name vm3 --net mynet2 --ip 172.74.26.11 ubuntu

在這裏插入圖片描述

此時vm1和vm2在一個橋接上,vm3在一個橋接上
在這裏插入圖片描述
注意:此時vm1和vm2可以互相通信,但vm1和vm3不可以通信
在這裏插入圖片描述

#####讓單機不同網橋下容器可以進行通信
在這裏插入圖片描述

將vm3添加到mynet1上:
[root@server1 ~]# docker network connect mynet1 vm3
在這裏插入圖片描述

網絡解決方案進階

macvlan方案的實現:
在這裏插入圖片描述
刪除網卡驅動
在這裏插入圖片描述
此時server1的網絡狀態
在這裏插入圖片描述

此時server2的網絡狀態
在這裏插入圖片描述

1.在兩臺docker上添加網卡,打開網卡混雜模式
在server1上:
在這裏插入圖片描述

[root@server1 ~]# ip link set up eth1
[root@server1 ~]# ip link set eth1 promisc on

在這裏插入圖片描述

在server2上:
[root@server2 ~]# ip link set up eth1
[root@server2 ~]# ip link set eth1 promisc on

在這裏插入圖片描述
2.在兩臺docker主機上創建macvlan網絡
在server1上:

[root@server1 ~]# docker network create -d macvlan --subnet 172.73.26.0/24 --gateway 172.73.26.1 -o parent=eth1 mac1
8ba8e487cdd230fed0845d4a0ac2f1c160853949cdee756c39018f3b0041a6af

在這裏插入圖片描述

在server2:
在這裏插入圖片描述

3.在server1和server2上創建vm1

[root@server1 ~]# docker run -it --name vm1 --net mac1 --ip 172.73.26.11 ubuntu

[root@server2 ~]# docker run -it --name vm1 --net mac1 --ip 172.73.26.12 ubuntu

此時可以在server1的vm1上ping通servr2的vm1(在server2上也同)
在這裏插入圖片描述
在這裏插入圖片描述

macvlan 子接口

在server1上設置子接口

[root@server1 ~]# docker network create -d macvlan --subnet 172.74.26.0/24 --gateway 172.74.26.1 -o parent=eth1.1 mac2
101412a2a567fae6ba316e35289207df1711874dcd9658c0db3a702b57226773

在這裏插入圖片描述

此時並沒有多出驅動
在這裏插入圖片描述

但是此時另外建立,ping不通
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章