Docker修改默认Docker0的网段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker修改默认Docker0的网段相关的知识,希望对你有一定的参考价值。
参考技术A Docker安装后,默认会创建一个名为Docker0的虚拟网卡,使用的是172.17.*网段,用于为容器分配IP
可以通过ifconfig命令查看所有网络情况(如命令不存在,yum install net-tools安装)
下图为Docker0网络默认
而172段有时候会被公司内网专用,这样会造成在该服务器上访问公司172网络时路由到容器网络。
修改容器配置项,重新设置Docker路由,Docker版本为18.06,该方案向后兼容。
vim /etc/docker/daemon.json
添加一行 "bip": "192.168.210.1/24",该行建议放JSON第一行。
"bip": "192.168.210.1/24",
其他配置
service docker restart 重启容器
重启后再次运行ifconfig查看docker0是否变成192段,笔者测试个别机器重启容器就生效,但大部分机器不会直接生效,需要重启服务器后生效。
ifconfig返回
route命令返回:
查看容器实际IP,如果仍为172段则重启该容器
返回
1.较早版本的Docker是需要修改docker.service文件,自行创建网桥,比较复杂。
2.Docker安装规划时就建议规划好Docker网络,安装后就改掉网段,不然后面再改还是会影响线上环境的,而且如果没有及时发现这种问题,会导致很难排查。
3.如果是k8s生成的容器,则默认走flannel分配,flannel分配的IP段是k8s初始化及安装flannel时指定。
Docker--------修改Docker0网桥默认网段
1. 背景
Docker 服务启动后默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。
Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信,它还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认值。这些值都可以在服务启动的时候进行配置。
2. 环境
[[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# uname -r 3.10.0-327.36.3.el7.x86_64 [[email protected] ~]# docker version Client: Version: 1.12.6 API version: 1.24 Package version: docker-1.12.6-28.git1398f24.el7.centos.x86_64 Go version: go1.7.4 Git commit: 1398f24/1.12.6 Built: Fri May 26 17:28:18 2017 OS/Arch: linux/amd64 Server: Version: 1.12.6 API version: 1.24 Package version: docker-1.12.6-28.git1398f24.el7.centos.x86_64 Go version: go1.7.4 Git commit: 1398f24/1.12.6 Built: Fri May 26 17:28:18 2017 OS/Arch: linux/amd64
3. 实战
* 默认docker0 网桥信息
* 修改文件 /etc/docker/daemon.json 添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ]
* 重启 docker 服务
[[email protected] ~]# systemctl restart docker
* 查看修改后的 docker0 网桥信息
4. 总结
以需求驱动技术,技术本身没有优略之分,只有业务之分。
本文出自 “sea” 博客,请务必保留此出处http://lisea.blog.51cto.com/5491873/1940023
以上是关于Docker修改默认Docker0的网段的主要内容,如果未能解决你的问题,请参考以下文章