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的网桥.

相关文章
相关标签/搜索