docker網絡管理

 

安裝Docker時,它會自動建立三個網絡,bridge(建立容器默認鏈接到此網絡)、 none 、hostlinux

網絡模式 簡介
Bridge 此模式會爲每個容器分配、設置IP等,並將容器鏈接到一個docker0虛擬網橋,經過docker0網橋以及Iptables nat表配置與宿主機通訊。
Host 容器將不會虛擬出本身的網卡,配置本身的IP等,而是使用宿主機的IP和端口。
Container 建立的容器不會建立本身的網卡,配置本身的IP,而是和一個指定的容器共享IP、端口範圍。
None 該模式關閉了容器的網絡功能。
自定義網絡

咱們在使用docker run建立Docker容器時,能夠用 --net 選項指定容器的網絡模式,Docker能夠有如下4種網絡模式:git

host模式:使用 --net=host 指定。
none模式:使用 --net=none 指定。
bridge模式:使用 --net=bridge 指定,默認設置。
container模式:使用 --net=container:NAME_or_ID 指定。docker

1>. 背景json

Docker 服務啓動後默認會建立一個 docker0 網橋(其上有一個 docker0 內部接口),它在內核層連通了其餘的物理或虛擬網卡,這就將全部容器和本地主機都放到同一個物理網絡。vim

Docker 默認指定了 docker0 接口 的 IP 地址和子網掩碼,讓主機和容器之間能夠經過網橋相互通訊,它還給出了 MTU(接口容許接收的最大傳輸單元),一般是 1500 Bytes,或宿主主機網絡路由上支持的默認值。這些值均可以在服務啓動的時候進行配置。centos

2.> 環境服務器

[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@localhost ~]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7f2769b/1.13.1 Built: Mon Aug 5 15:09:42 2019 OS/Arch:         linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7f2769b/1.13.1 Built: Mon Aug 5 15:09:42 2019 OS/Arch:         linux/amd64 Experimental: false [root@localhost ~]#

3.> 修改默認docker0網橋網絡

[root@localhost ~]# ifconfig docker0 docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500 inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0 ether 02:42:52:5d:13:f2  txqueuelen 0 (Ethernet) RX packets 0  bytes 0 (0.0 B) RX errors 0  dropped 0  overruns 0  frame 0 TX packets 0  bytes 0 (0.0 B) TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 [root@localhost ~]#

咱們能夠看到默認docker0的網段是172.xx.xx.xxui

修改文件 /etc/docker/daemon.json 添加內容 "bip": "ip/netmask" [ 切勿與宿主機同網段 ]spa

[root@localhost ~]# vim /etc/docker/daemon.json { "bip":"192.168.100.1/24" } 

4.> 重啓服務器

[root@localhost ~]# systemctl restart docker.service

5.> 查看docker0的網段

[root@localhost ~]# ifconfig docker0 docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500 inet 192.168.100.1  netmask 255.255.255.0  broadcast 0.0.0.0 ether 02:42:52:5d:13:f2  txqueuelen 0 (Ethernet) RX packets 0  bytes 0 (0.0 B) RX errors 0  dropped 0  overruns 0  frame 0 TX packets 0  bytes 0 (0.0 B) TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 [root@localhost ~]#

OK,到這裏咱們已經成功的修改了docker0的網橋.

相關文章
相關標籤/搜索