docker内部ip与内网其它ip网段冲突导致无法访问的解决方法

现象:

宿主机和docker内部能互相访问非常正常,但docker内部访问外部网络内网其中一个网段172.18.0.x则无法访问。

排查

由于docker是精简过的系统,需另外安装网络相关命令
首先更新apt-get,否则在apt-get install 命令时会报E: Unable to locate package xx错误

apt-get update

安装网络工具

apt-get install -y net-tools

安装ping和telnet

apt-get install -y iputils-ping
apt-get install -y telnet

查看本机ip和网关,可用ifconfig和hostname -i命令

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.18.1.2  netmask 255.255.255.0  broadcast 172.18.1.255ether 02:42:ac:14:01:02  txqueuelen 0  (Ethernet)RX packets 224  bytes 20754 (20.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 226  bytes 1617336 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

果然ip为172.18.0.x,与现在外部内网其中一段Ip重复了,但是并没有看到网关,再在cmd里通过docker network命令确认一下

docker network ls
NETWORK ID     NAME                   DRIVER    SCOPE
f2d743a9d1d7   bridge                 bridge    local
aa072983972b   host                   host      local
3689e62360ba   none                   null      local
0c92c70dfedd   webcloudapi_default    bridge    local

然后查询该网络详细

docker network inspect webcloudapi_default
[{"Name": "webcloudapi_default","Id": "0c92c70dfeddaca8722c5278831f07cb1555be23fdc74b8536ad2017eeb4ca3e","Created": "2023-08-31T01:23:30.156696Z","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": null,"Config": [{"Subnet": "172.18.0.0/16","Gateway": "172.18.0.1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {},"Options": {},"Labels": {"com.docker.compose.network": "default","com.docker.compose.project": "webcloudapi","com.docker.compose.version": "2.20.2"}}
]

看到ip和网关都为172.18.0.x的,这时候确认问题,可以着手调整了。

解决方案

通过docker compose在部署的时候更改默认ip和网关即可。
webapi-compose.yml

version: '3'
networks:test-net:ipam:config:- subnet: 172.20.1.0/24gateway: 172.20.1.1
services:webcloudapi:image: webcloudapicontainer_name: webcloudapihostname: webcloudapiports:- 20020:80restart: alwaysnetworks:test-net:ipv4_address: 172.20.1.2

重新运行部署此yml文件(注意,这个操作会将原容器更改过的内容,包括新下载的命令软件全部重置)

docker compose -p webcloudapi -f webapi-compose.yml up -d

这时候再用api-get重新按上述步骤下载网络相关命令查看,ip和网关都变成172.20.1.x网段了,说明设置成功,但ping 172.18.0.x仍然无法连通,奇怪,后来终于发现问题所在,是之前部署的docker network配置还存在导致的问题

docker network ls
NETWORK ID     NAME                   DRIVER    SCOPE
f2d743a9d1d7   bridge                 bridge    local
aa072983972b   host                   host      local
3689e62360ba   none                   null      local
0c92c70dfedd   webcloudapi_default    bridge    local
d0916e722225   webcloudapi_test-net   bridge    local

上面的webcloudapi_default是原来的,webcloudapi_test-net是新建的,因此只要删除原来的即可。

docker network rm webcloudapi_default

重启容器后,终于ping通了,至此问题解决。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指 Offer 10- I. 斐波那契数列

剑指 Offer 10- I. 斐波那契数列 方法一 class Solution {int mod (int) 1e9 7;public int fib(int n) {if(n < 1) return n;int[] dp new int[n 1];dp[1] 1;for(int i 2; i < n; i){dp[i] (dp[i - 1] dp[i - 2]) % mod;}return dp[n];} }方法二 对方法一进行…

景区洗手间生活污水处理设备厂家电话

诸城市鑫淼环保小编带大家了解一下景区洗手间生活污水处理设备厂家电话 MBR生活污水处理设备构造介绍&#xff1a; mbr一体化污水处理的设计主要是对生活污水和相类似的工业有机污水的处理&#xff0c;其主要处理手段是采用目前较为成熟的生化处理技术接触氧化法&#xff0c;水…

el-table滚动加载、懒加载(自定义指令)

我们在实际工作中会遇到这样的问题&#xff1a; 应客户要求&#xff0c;某一个列表不允许分页。但是不分页的话&#xff0c;如果遇到大量的数据加载&#xff0c;不但后端响应速度变慢&#xff0c;前端的渲染效率也会降低&#xff0c;页面出现明显的卡顿。 那如何解决这个问题…

基础算法-递推算法-学习

现象&#xff1a; 基础算法-递推算法-学习 方法&#xff1a; 这就是一种递推的算法思想。递推思想的核心就是从已知条件出发&#xff0c;逐步推算出问题的解 最常见案例&#xff1a; 一&#xff1a;正向递推案例&#xff1a; 弹力球回弹问题&#xff1a; * 弹力球从100米高…

OpenLayers7官方文档翻译,OpenLayers7中文文档,OpenLayers快速入门

快速入门 这个入门文档向您展示如何放一张地图在web网页上。 开发设置使用 NodeJS&#xff08;至少需要Nodejs 14 或更高版本&#xff09;&#xff0c;并要求安装 git。 设置新项目 开始使用OpenLayers构建项目的最简单方法是运行&#xff1a;npm create ol-app npm create…

在ubuntu下远程链接仓库gitte/github

后期适当加点图片&#xff0c;提高可读性。 本教程是最基础的连接教程&#xff0c;设计git的操作也仅仅局限于push/pull&#xff0c;如果想全面了解&#xff0c;可以参考廖雪峰git教程 在Ubuntu上初始化本地Git仓库并链接到远程Gitee仓库(github同理)&#xff0c;需要按照以下步…

Go 面向对象(匿名字段)

概述 严格意义上说&#xff0c;GO语言中没有类(class)的概念,但是我们可以将结构体比作为类&#xff0c;因为在结构体中可以添加属性&#xff08;成员&#xff09;&#xff0c;方法&#xff08;函数&#xff09;。 面向对象编程的好处比较多&#xff0c;我们先来说一下“继承…

音视频 ffmpeg命令提取PCM数据

提取PCM ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -sample_fmt s16 out_s16.wav ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -codec:a pcm_s16le out2_s16le.wav ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f…

QWidget的ui界面绘制成图片

文章目录 源文件源码解释效果修复图片清晰度 源文件 #include "widget.h" #include "ui_widget.h"#include <QPixmap> #include <QDir>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 构造…

Pinely Round 2 (Div. 1 + Div. 2) G. Swaps(组合计数)

题目 给定一个长度为n(n<1e6)的序列&#xff0c;第i个数ai(1<ai<n)&#xff0c; 操作&#xff1a;你可以将当前i位置的数和a[i]位置的数交换 交换可以操作任意次&#xff0c;求所有本质不同的数组的数量&#xff0c;答案对1e97取模 思路来源 力扣群 潼神 心得 感…

Android之布局转圆角

Android之布局转圆角 文章目录 Android之布局转圆角说明一、效果图二、实现步骤1.自定义RoundRelativeLayout2.使用 总结 说明 很多需求比较无语&#xff0c;需要某个布局转圆角&#xff0c;像个显眼包一样&#xff0c;所以为了满足显眼包&#xff0c;必须整呐提示&#xff1a…

Java智慧工地信息化管理平台源码,依托计算机信息、网络通讯、物联网、系统集成及云计算技术建立

Java智慧工地源码 智慧工地APP源码 系统定义&#xff1a; 智慧工地信息化管理平台是依托计算机信息、网络通讯、物联网、系统集成及云计算技术&#xff0c;通过数据采集、信息动态交互、智能分析&#xff0c;建立起来的一套集成的项目建设综合管理系统。实现项目管理信息化、网…

LeetCode 剑指offer 09.用两个栈实现队列

LeetCode 剑指offer 09.用两个栈实现队列 题目描述 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回…

消息队列-------Rabbitmq介绍和安装

1.消息队列介绍 消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下&#xff0c;生活中买东西&#xff0c;需要排队&#xff0c;先排的人先买消费&#xff0c;就是典型的“先进先出” 2.消息队列MQ可以解决的问题 MQ是一直存在&#xff0c;不过随着微服务架构…

C语言网络编程实现组播(多播)

1、组播IP划分 224.0.0.0&#xff5e;224.0.0.255 为预留的组播地址&#xff08;永久组地址&#xff09;&#xff0c;地址224.0.0.0保留不做分配&#xff0c;其它地址供路由协议使用&#xff1b; 224.0.1.0&#xff5e;224.0.1.255 是公用组播地址&#xff0c;可以用于Inter…

Scala的特质trait与java的interface接口的区别,以及Scala特质的自身类型和依赖注入

1. Scala的特质trait与java接口的区别 Scala中的特质&#xff08;trait&#xff09;和Java中的接口&#xff08;interface&#xff09;在概念和使用上有一些区别&#xff1a; 默认实现&#xff1a;在Java中&#xff0c;接口只能定义方法的签名&#xff0c;而没有默认实现。而在…

机器连接和边缘计算

以一种高效、可扩展的方式进行连接和边缘计算的结合&#xff0c;解决了在工业物联网应用中的机器数据集成问题。 一 边缘计算 边缘计算描述了由中央平台管理的数据分散式处理&#xff0c;它对于工业物联网而言非常重要。在许多应用程序中&#xff0c;由于数据量非常大&#xf…

【USRP】集成化仪器系列1 :信号源,基于labview实现

USRP 信号源 1、设备IP地址&#xff1a;默认为192.168.10.2&#xff0c;请勿 修改&#xff0c;运行阶段无法修改。 2、天线输出端口是TX1&#xff0c;请勿修改。 3、通道&#xff1a;0 对应RF A、1 对应 RF B&#xff0c;运行 阶段无法修改。 4、中心频率&#xff1a;当需要…

界面控件DevExpress .NET应用安全 Web API v23.1亮点:支持Swagger模式

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。 DevExpress 今年第一个重要版本v23.1日前已正式发布了&#xff0c;该版本拥有众多新产品和数十…

电子学会 2023年3月 青少年软件编程Python编程等级考试三级真题解析(选择题+判断题+编程题)

青少年编程Python编程等级考试三级真题解析(选择题+判断题+编程题) 2023年3月 一、选择题(共25题,共50分) 十进制数111转换成二进制数是?( ) A. 111 B. 1111011 C. 101111 D. 1101111 答案选:D 考点分析:考察python 进制转换 十进制转二进制,采用除二倒取余数,直到商…