docker容器网络与宿主机网络冲突的原因与解决方案

一、故障现象

在用docker-compos.yaml文件或者手动创建docker网络时,可能会出现新建的容器网络与宿主机网络冲突,导致SSH远程连接中断,并无法再用Xshell等远程连接工具连接宿主机。现象如下:

[root@controller ~]# docker network create ptuxgk5

Socket error Event: 32 Error: 10053.
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(11) at 15:10:24.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 10.200.7.133:50322...
Could not connect to '10.200.7.133' (port 50322): Connection failed.

Type `help' to learn how to use Xshell prompt.

二、原因分析

docker容器网络通常默认使用网络地址为172.16.0.0~172.31.0.0的B类私有网络,该类网络最大支持15个容器网络,每创建一个docker容器网络(br开头的虚拟网卡)就会消耗掉一个。当该B类私有网络消耗完后,就会使用192.168开头的C类网络。

如果宿主机网络恰好使用B类私有网络地址,则在创建docker容器网络时就可能产生冲突,特别是创建多个容器网络时,冲突的概率就会大增。

下图为宿主机的IP地址

下图为创建多个容器网络时,最后一个容器网络就与宿主机网络产生了冲突,导致文章开头出现的那一幕,Xshell远程连接被迫中断,并无法再连接。

三、临时解决方案

如果只需要临时解决一下,可以利用VNC的方式登录宿主机,并删除产生冲突的容器网络即可,示例命令如下:

四、根本解决方案

1、修改或创建/etc/docker/daemon.json

修改或创建/etc/docker/daemon.json文件,参照以下示例添加bip和default-address-pools两个参数及其对应的值,示例中的IP地址可自行定义,只要未使用即可。

注:配置文件中不能有注释,中文注释要删除!!!

[root@controller ~]# vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://你的容器镜像加速器地址"],
  "insecure-registries":["192.168.88.88:8888"],    #私有容器仓库地址
  "bip": "8.8.8.8/24",            #自定义docker0网桥地址
  "default-address-pools": [      #自定义docker网桥地址池
          {"base": "188.188.1.0/24", "size": 24},
          {"base": "188.188.2.0/24", "size": 24},
          {"base": "188.188.3.0/24", "size": 24},
          {"base": "188.188.4.0/24", "size": 24},
          {"base": "188.188.5.0/24", "size": 24}
          ……如有需要,可继续追加网桥地址池……
  ]
}

2、重启docker服务

完成上述配置后,重启docker服务即可生效。

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

3、核查效果

创建两个docker容器网络,并查看效果如下所示,可见docker0和新建的两个容器网桥地址与配置文件相符。

[root@controller ~]# docker network create ptuxgk1
04262077aede1a27b31ddcd35af2d18c484c443d121746d0df5983ef61109052
[root@controller ~]# docker network create ptuxgk2
a45762072eb75a3bee1a59ab671fde7cf67d58d354d2e61306c246996ae4bbd4
[root@controller ~]# ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 215.88.61.100/25 brd 215.88.61.127 scope global noprefixroute enp4s3
    inet6 fe80::560b:e89c:da8c:3d27/64 scope link noprefixroute 
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    inet 8.8.8.8/24 brd 8.8.8.255 scope global docker0
    inet 188.188.1.1/24 brd 188.188.1.255 scope global br-04262077aede
    inet 188.188.2.1/24 brd 188.188.2.255 scope global br-a45762072eb7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/727138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web数据提取:Python中BeautifulSoup与htmltab的结合使用

1. 引言 Web数据提取,通常被称为Web Scraping或Web Crawling,是指从网页中自动提取信息的过程。这项技术在市场研究、数据分析、信息聚合等多个领域都有广泛的应用。Python社区提供了丰富的工具和库来支持这一技术,其中BeautifulSoup和htmlt…

家有老人小孩,室内灰尘危害大!资深家政教你选对除尘空气净化器

哈喽,各位亲爱的朋友们!今天我们来聊聊每次大扫除时最让人头疼的问题——灰尘。你有没有发现,两天不打扫,桌子上就能积上一层灰;阳光一照,地板上的灰尘都在跳舞;整理被子的时候,空气…

卷积网络热图显示

【卷积神经网络可视化】之热度图可视化_visualizing heatmaps of class activation in an ima-CSDN博客 首先安装好对应的安装包,做这个的目的是为了可视化网络模型,查看每一个卷积之后得出的效果,可以通过改变网络模块来改进网络结构。这段…

基于JSP的二手交易平台网站

开头语: 你好,我是计算机专业的学长猫哥。如果你对二手交易平台感兴趣或有开发相关需求,欢迎联系我,我的联系方式见文末。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:ECLI…

RH850---注意问题积累--1

硬件规格(引脚分配,内存映射,外设功能规格、电气特性、时序图)和操作说明 注意:有关使用的详细信息,请参阅应用说明 ---------外围函数。。。 1:存储指令完成与后续同步指令的一代 当控制寄存器被存储指令更新时,从存储的执行开始…

3ds MAX 2024版资源包下载分享 3ds Max三维建模软件资源包下载安装

3DSMAX凭借其强大的功能和广泛的应用领域,吸引了无数创作者的青睐。 在游戏制作领域,3DSMAX展现出了无可比拟的优势。从细腻的角色建模到宏大的场景搭建,再到逼真的动画效果和渲染,它都能轻松应对,为游戏世界注入了生动…

通过MindSpore API实现深度学习模型

快速入门 将相应的包逐一导入到项目中,这是制作项目的第一步。 import mindspore from mindspore import nn from mindspore.dataset import vision, transforms from mindspore.dataset import MnistDataset 处理数据集 先从网上下载对应的数据集文件,MindSpor…

【GO】rotatelogs库和sirupsen/logrus库实现日志功能的实践用例

“github.com/sirupsen/logrus” 是一个 Go 语言的日志库,它提供了一种简单、灵活的方式来记录日志。该库的主要特点包括: 支持多种日志输出目标,如控制台、文件等。 支持日志轮转,可以按照时间或文件大小进行轮转。 支持日志格式…

“开放”的大模型到底有多“开放”?!

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

FRP内网穿透及多级代理的使用

目录 0、前言 1、场景介绍 2、环境准备 2.1 下载frp 2.2 配置一台VPS 2.3 socks5客户端 2.5 网络环境准备 3、Frp设置 3.1 一层代理 3.1 二层代理 4、Frp总结 0、前言 FRP是比较老牌的也是比较流行的反向代理、内网穿透软件。FRP用途和使用场景可以看官方文档,…

【Linux工具】yum软件包管理器与Vim编辑器的高效运用

目录 Linux 软件包管理器 YUM 什么是软件包 安装工具 rzsz 及注意事项 查看软件包 安装和卸载软件 安装软件 卸载软件 Linux 开发工具 编辑器 - Vim 使用 ​编辑 Vim 与 Vi 的区别 Vim 的基本概念 三种模式 Vim 的基本操作 操作尝试: Vim 命令集解释…

【有趣分享】火柴人VS数学

今天看到一个很有趣的视频,是火柴人VS数学,大家感兴趣的可以看一下: 火柴人 VS 数学(Math)https://www.bilibili.com/festival/jzj2023?bvidBV1ph4y1g75E&spm_id_from333.337.search-card.all.click

[Linux] 系统的基本架构特点

Linux系统的基本结构 Linux is also a subversion of UNIX,it follows the basic structure of UNIX 内核(kernel): 操作系统的基本部分 管理与硬件相关的功能,分模块进行 常驻模块:进程控制IO操作文件\磁盘访问 用户不能直接访问内核 外壳(s…

java学习--集合(大写一.1)

看尚硅谷视频做的笔记 1.集合框架概述 1.1生活中的容器 首先知道集合是来解决什么问题的? 1.1.1内存层面需要针对于多个数据进行存储,此时,可以考虑的容器有:数组、集合类 对于内存层面的来说,断电后数据就不复存…

Python和OpenCV图像分块之图像边长缩小比率是2

import cv2 import numpy as npimg cv2.imread("F:\\mytupian\\xihuduanqiao.jpg") # 低反光 cv2.imshow(image, img) # # 图像分块 # dst np.zeros(img.shape, img.dtype) ratio 2 #图像边长缩小比率是2,也就是一张图片被分割成四份 height, wi…

模型预测控制MPC详解(附带案例实现)

模型预测控制MPC详解(附带案例实现) 文章目录 模型预测控制MPC详解(附带案例实现)1. 最优控制问题2. 什么是MPC3. 二次规划Quadratic Programming4. MPC为什么可以转换成QP问题(推导过程)5. MPC总结5.1 MPC…

希喂、K9、弗列加特主食冻干测评:这次,我们去了美国的实验室

主食冻干你有喂过吗? 作为有七年养猫经验的铲屎官,我强烈推荐,真的值得一试! 在宠物经济蓬勃发展的今天,养猫已经成为了一门学问。人们开始追求更加科学、健康的养猫方式。大量喂养案例表明,传统的商业猫粮…

【ARMv8/v9 GIC 系列 2.1 -- GIC SPI 中断的 pending 和 clear pending 配置】

文章目录 GIC Pending 和 Clear PendingGICD_ISPENDR<n>GICD_ICPENDR<n>参数<n>编号解释使用举例设置中断ID 100为挂起状态清除中断ID 100的挂起状态 代码实现小结 GIC Pending 和 Clear Pending 在ARMv8体系结构中&#xff0c;GICD_ISPENDR<n> 和 GI…

C# WPF入门学习番外篇——C#使用WPF连接MySQL数据库

在 C# 中使用 WPF 连接 MySQL 数据库涉及几个步骤&#xff0c;包括安装必要的库&#xff0c;配置连接字符串&#xff0c;编写代码以执行数据库操作等。下面是一个详细的入门教程&#xff0c;帮助你理解如何在 WPF 应用程序中使用 MySQL 数据库。 1. 安装 MySQL 数据库连接器 …

两个方法,批量替换PPT中的字体

经常制作ppt的朋友可能会遇到需要批量替换字体的情况&#xff0c;如果我们想要更换ppt中的字体&#xff0c;今天分享PPT批量替换字体的两个方法。 方法一&#xff1a; 找到功能栏中的编辑选项卡&#xff0c;点击替换 – 替换字体&#xff0c;在里面选择我们想要替换的字体就可…