Docker网络地址冲突问题及解决【手到病除】
Docker的网络问题
Docker虽好,网络难搞。一开docker,生产vpn用不了。
在网易杭研工作期间,用网易vpn时就遇到过问题 Docker的172网络和vpn冲突问题.md 表现是
开了vpn,docker中mysql就访问不了,除非删除vpn的172网段
现在又碰到开了vpn,vnc的端口无法访问(因为这次过程取证需要用vnc) Docker daemon开启tcp端口及证书配置.md
Docker所开启的内网地址,为什么要开这些网络?
- docker会开启内网地址
$ ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether e0:d5:5e:55:4b:e0 brd ff:ff:ff:ff:ff:ffinet 10.216.24.192/21 brd 10.216.31.255 scope global dynamic noprefixroute enp3s0valid_lft 690826sec preferred_lft 690826secinet6 fe80::f5ad:7bea:e0fb:f6a/64 scope link noprefixroute valid_lft forever preferred_lft forever# vincent @ vincent-B250M-DS3H in ~ [10:02:24] $ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES# vincent @ vincent-B250M-DS3H in ~ [10:02:37] $ ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether e0:d5:5e:55:4b:e0 brd ff:ff:ff:ff:ff:ffinet 10.216.24.192/21 brd 10.216.31.255 scope global dynamic noprefixroute enp3s0valid_lft 690809sec preferred_lft 690809secinet6 fe80::f5ad:7bea:e0fb:f6a/64 scope link noprefixroute valid_lft forever preferred_lft forever3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:2f:e4:0b:72 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft forever4: br-52e5b703a337: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:ed:e9:7c:a8 brd ff:ff:ff:ff:ff:ffinet 172.18.0.1/16 brd 172.18.255.255 scope global br-52e5b703a337valid_lft forever preferred_lft forever5: br-e22ed54865c9: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:37:ec:2f:c0 brd ff:ff:ff:ff:ff:ffinet 172.19.0.1/16 brd 172.19.255.255 scope global br-e22ed54865c9valid_lft forever preferred_lft forever
如上集中在3个网段,都是B类地址,因为很多家中机,小企业机,都是用C类地址的,但是对网易来说不合适
网易是大企业,我的工作机ip10.216.24.192
是A类的,可以容纳1千万台主机
网络地址规划
办公网ip,
A类
办公vpn(运维用,连接测试和生产服务器),是172的,
B类
docker网络,统统改为
C类
桥接模式的网络流向
外部访问docker,比如16302端口打开,要访问到docker内部的取证服务
1.宿主机上谁打开了16302端口?
sudo netstat -anp | grep 16302 --显示是docker-proxy打开的
也就是访问docker内服务的请求,最先是docker daemon本身先接收到的
2.docker daemon将这个请求转到docker0网桥
3.docker0网桥将请求转到172网络
通过ip route
设置,自然会转到veth(而这个veth就是docker中eth0的马甲)
如上2个问题就是出在第三步问题,这段和vpn的网段重复了,结果docker0发出的报文,到被导向了vpn,造成访问不了docker
删除其他两个bridge,只保留docker0;而且docker0要变成是192网段的
配置docker0,变成192.168网段 ,C类地址
看下docker官方的文档:
https://docs.docker.com/v17.09/engine/userguide/networking/default_network/custom-docker0/
我在/etc/docker
目录下新建了daemon.json
文件,之所以用如下,是否为了和可能的冲突避免开
{"bip": "192.168.200.1/24"}
然后重启
sudo systemctl daemon-reloadsudo systemctl restart docker.service
然后就好了
宿主机看ifconfig,docker0已经ip变了
进入容器内看,ifconfig,ip也已经变了
并且本地vnc和SpringBoot都可以用了!!
Docker网络地址冲突问题及解决【手到病除】相关推荐
- docker 网桥冲突了解决
docker 网桥冲突了解决 删除网桥¶ 1.停用网桥 ip link set down <bridge> 2.删除网桥的配置文件 rm -f ifcfg-<bridge> 3 ...
- JAR冲突问题的解决以及运行状态下如何查看加载的类
今天碰到群里小伙伴问,线上程序好像有多个不同版本的Netty包,怎么去看到底加载了哪一个? 在说如何看之前,先来说说,当你开始意识到项目里有多个不同版本的Jar包,都是因为遇到了这几个异常: 1.ja ...
- php5.3中ZendGuardLoader与wincache冲突问题的解决方法
这篇文章主要介绍了php5.3中ZendGuardLoader与wincache冲突问题的解决方法,需要的朋友可以参考下 windows环境下,php5.3版本同时开始ZendGuardLoader和 ...
- idea使用git插件,出现冲突了怎么解决?多场景分析助你解决问题
目录 写在前面 1.当a写完代码提交之后,b也修改了同样的文件,此时b使用pull会出错 问题出现的原因 解决方案1 解决方案2 注意事项 2.当a新加了一个文件提交之后,b也新加了一个文件后并进行提 ...
- Maven中 jar包冲突原理与解决办法依赖传递
Maven中 jar包冲突原理与解决办法&依赖传递 管理包依赖是 Maven 核心功能之一,下面通过如何引入 jar 包:如何解析 jar 包依赖:包冲突是如何产生:如何解决包冲突:依赖管理解 ...
- 再也不怕SVN冲突:轻松解决SVN冲突
什么时候容易出现冲突? 多个人同时修改了同个文件中的同一行代码 无法进行对比的二进制文件,比如图片等 如何解决冲突? 如上图,test_conflict.py文件发生了冲突,并且多出了几个文件,其中. ...
- ECSHOP中transport.js和jquery的冲突的简单解决办法
ECSHOP中transport.js和jquery的冲突的简单解决办法 一流资源网近日在ECSHOP网站加入了几个JS特效代码,在谷歌.火狐下正常,在各版本IE下都不常,左思不得其解. 最后才知道原 ...
- git can‘t merge 的处理 代码冲突问题的解决
git can't merge 的处理 代码冲突问题的解决 参考文章: (1)git can't merge 的处理 代码冲突问题的解决 (2)https://www.cnblogs.com/jint ...
- 【Docker】安装MySQL彻底解决3306端口占用问题
[Docker]安装MySQL彻底解决3306端口占用问题 参考文章: (1)[Docker]安装MySQL彻底解决3306端口占用问题 (2)https://www.cnblogs.com/wuca ...
最新文章
- Spring MVC 到 Spring BOOT 的简化之路
- Opera浏览器无法观看土豆 优酷 新浪视频的解决办法!
- E0144	const char * 类型的值不能用于初始化 char * 类型的实体
- 点击按钮创建一个表格 点击按钮创建一个表格 权限选择 元素的value属性操作
- internet explorer 无法打开 Internet站点 已中止操作
- git 创建webpack项目_近期总结:手动搭建react项目,将项目从自己的库引入到新的项目中使用...
- 神经网络在线和离线的区别,神经网络网站
- 微信公众号授权登录(应用免登陆)
- 该怎么保持微信公众账号用户活跃度
- php控制梯形图,如何画梯形图? plc梯形图怎么画?如何画plc梯形图
- 四叶草的python代码_python绘图四叶草
- BIGEMAP如何发布百度离线地图及二次开发API
- 随机过程(1.1)—— 概率空间、分布函数、Riemann-Stieltjes 积分
- 基于STM32设计物联网在线智能称重系统(OneNet)_2022
- 腾讯-腾讯云citybase产品白皮书
- 试解leetcode算法题--求解方程
- Java Agent 型内存马调试系列 (一)
- 【docker系列】四种基础网络模式及自定义网络
- Behance上值得借鉴的设计风格
- Vue2.0开发之——loader的作用及调用过程(06)