Docker中的网络模式

news2025/1/17 1:10:50

使用命令docker inspect 容器id/name能看到容器的ip地址,使用主机和其他容器ping这个地址发现都是可以ping通的,但是使用本地局域网内的其他机器是无法ping通的。

查看容器的id

Docker的默认网络模式可以分为:Host 模式、Bridge 模式或者 None 模式。然后来看下当前docker的网络信息,目前创建的容器都是属于docker0这个网段中,docker0负责这些容器之间的通信。

image-20230111215322834

创建和使用自定义bridge

Bridge模式是Docker的默认网络模式,也是最常用的模式,这种模式下的容器会被分配一个172.17.0.0/16网段的IP。并且容器和主机/其他Bridge模式容器可以互相访问,容器也能访问外网,但是外网不能直接访问容器。

创建的容器默认都会连接到doker0上,我们可以创建自己的bridge,创建bridge命令如下,其中创建的bridge名字是mybridge:

docker network create -d bridge mybridge 
# 指定网关为172.200.0.1,子网为172.200.0.0/16,分配在此网段下的ip是172.200.0.1、172.200.0.2、……
docker network create -d bridge --gateway 172.200.0.1 --subnet 172.200.0.0/16 mybridge 

创建容器时可以指定docker网络,创建完成后也可以添加或删除连接:

docker run -d --name 容器名称 --network mybridge -ip 172.200.0.1 # 创建容器时指定连接到mybridge网络并指定ip地址
docker network connect bridge名称 容器名称         # 容器创建后添加bridge,一个容器可以连多个bridge
docker network disconnect bridge名称 容器名称     cccc # 取消连接到某个bridge网络

如果连接到自己创建的bridge网络,在容器中ping别的容器名称发现是可以ping通的,前提是连接在同一bridge网络下,如果是连接在默认的bridge下是无法ping通的。

应用场景分析

为什么需要自定义bridge?举一个MySQL部署的例子,现有一个比较大型的项目,需要5个MySQL实例,同时还有一个ShardingSphereProxy中间件需要连接到这5个MySQL实例。

我们可以在创建MySQL实例的时候,指定bridge并设定ip,ShardingSphereProxy通过设置的ip地址可以很方便的连接到各个数据库,这种操作方法无论在哪台机器上都可以这么部署,不需要设置机器的ip即可连接到MySQL,可维护性大大提升。

host网络模式

如果是基于host模式,容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace,容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。

用的是宿主机的IP,也就是和宿主机共用一个IP地址,host模式不需要加-p进行端口映射,因为和宿主机共享网络IP和端口。通过 --network=host 指定使用 host 网络。

docker run -itd --network host centos7-ssh-v1:latest

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

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

相关文章

word中导入zotero的参考文献

平时使用Zotero管理文献,使用Word写完论文后想用Zotero导入参考文献,也方便修改参考文献格式。 Zotero 打开Zotero找到编辑-首选项 打开首选项,下载国标格式,引用-获取更多样式-搜索框:China Word Word中打开写的…

APSIM练习 :机会种植

该练习是设置一个播种规则,根据条件情况,自动取使用哪种作物进行轮作。 在之前的练习中,我们每年都会重置起始条件。我们不打算在本练习中进行此重置。相反,我们将研究如何根据这些不同的起始条件改变播种的内容;具体…

Docker简介以及安装

官方链接: Docker官网 Docker仓库地址 1、基本要求 docker要求Linux内核系统64位,内核在3.8以上 cat /etc/redhat-release uname -r 2、三要素 2.1、镜像 2.2、容器 2.3、仓库 镜像存放的地方,有点类似Maven仓库 3、安装步骤 官网指导&#xff…

最大比例(数论 最大公约数 辗转相减法)[第七届蓝桥杯省赛C++A/B组]

题目如下: 题解 or 思路: 假设题中所给的数据为 b1,b2,b3,⋅⋅⋅,bnb_1,b_2,b_3,⋅⋅⋅,b_nb1​,b2​,b3​,⋅⋅⋅,bn​,分别用第一项之后的项除以第一项,得到:b2b1,b3b1,⋅⋅⋅,bnb1\frac{b2}{b1},\frac{b3}{b1},⋅⋅…

【Axure教程】自动识别文件类型的上传列表

文件上传是系统中很常用的功能,所以今天作者就教大家在Axure中如何利用中继器,制作一个能自动识别常用的文件类型的上传列表。 一、效果展示 1、点击上传按钮,可以选择本地的文件进行上传 2、选择文件后,在上传列表中新增该文件…

学生用台灯应该选什么样的?看这一篇就够了~

学生在选购一款台灯时,最重要的考虑因素应该是什么?最重要是这款台灯是否真正护眼,价格和外观是次要的,可以根据预算、用途、家居风格来抉择,而是否护眼这一标准需要我们通过衡量台灯的光线指标来判断了。光线指标的五…

ORB-SLAM2 --- LoopClosing::SearchAndFuse函数

目录 1.函数作用 2. code及解析 3. ORBmatcher::Fuse函数解析(闭环调用版) 1.函数作用 将闭环相连关键帧组mvpLoopMapPoints 投影到当前关键帧组中,进行匹配,新增或替换当前关键帧组中KF的地图点。 2. code及解析 /*** brief 将…

第21章 随机游走

第21章 随机游走 随机游走的建模场景是某个对象按照随机选择的方向行走一个步数序列。 21.1赌徒破产 假设一个赌徒一开始有n美元赌注,他要进行一系列1美元投注。如果他赢得一局,则拿回他的赌注外加1美元。如果他输了,那么他将失去1美元。 …

MySQL中InnoDB的事务隔离

文章目录前言一、事务介绍二、事务的四大特性三、事务的隔离性四、事务隔离的实现前言 我们在实际开发中,执行某个业务,肯定不是简单的操作某一句SQL语句,而是多条SQL语句。那么这多条SQL语句必须是全部成功执行,或者全部失败。才…

[L1 - 10分合集]吃鱼还是吃肉

L1-063 吃鱼还是吃肉 分数 10 作者 陈越 单位 浙江大学 题目: 国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。 现在你要根据小宝宝的身高体重,给出补充营养的建议…

最近发现关于计算机网络的1个秘密

最近闲着没啥事翻开之前谢希仁老师第7版的《计算机网络》这本书,结果发现了1个惊天的秘密。 首先是互联网与互连网的区别,一般我们常说的互联网是Internet,是指因特网,其起源于阿帕网。或许很多读者看到这里就觉得有什么秘密可言,不都是常识了吗?看你大惊小怪的。 我们不妨看看…

spring cloud、gradle、父子项目、微服务框架搭建---rabbitMQ延时队列(七)

总目录 https://preparedata.blog.csdn.net/article/details/120062997 文章目录总目录一、rabbit延时插件下载二、rabbit插件安装三、项目中配置延时队列四、定义消息通道五、生成消息六、监听消息,进行消费延时队列的配置是对上片文章的延伸扩展 https://prepare…

paddledetection推理代码结构

https://github.com/PaddlePaddle/PaddleDetection/blob/release%2F2.5/deploy/pipeline/README.mdhttps://github.com/PaddlePaddle/PaddleDetection/blob/release%2F2.5/deploy/pipeline/README.md GitHub - leeguandong/Xiaobao: videoclip,视频剪辑应用videocl…

Go 1.19.3 error原理简析

Go error是一个很痛的话题(真心难用) 标准库 error 的定义 // The error built-in interface type is the conventional interface for // representing an error condition, with the nil value representing no error. type error interface {Error() string }error 是一个…

windows10安装wireshark

win10安装wireshark并使用windows10安装wireshark下载WIRESHARK下载Win10Pcapwindows10安装wireshark 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知…

javaEE 初阶 — JUC(java.util.concurrent) 的常见类

文章目录1. Callable 接口1.1 Callable 的用法2. ReentrantLock2.1 ReentrantLock 的缺陷2.1 ReentrantLock 的优势3. 原子类4. 信号量 Semaphore5. CountDownLatch6. 相关面试题1. Callable 接口 类似于 Runnable 一样。 Runnable 用来描述一个任务,描述的任务没有…

【Spring源码】21. 关于循环依赖的N个问题

完成了applyMergedBeanDefinitionPostProcessors()方法,后面有一段关于判断Bean是否需要提前曝光的逻辑(如下图红框框中部分)在这段逻辑中涉及到了著名的循环依赖,提到循环依赖基本必讲三级缓存,好吧,这篇就…

CANOpen中SDO和PDO的COB-ID理解

CAN 总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于 CAN 总线本身只定义ISO/OSI 模型中的第一层(物理层)和第二层(数据链路层)&#xf…

(8)go-micro微服务Mysql配置

文章目录一 gorm介绍二 gorm安装1.1 下载依赖1.2 使用MySQL驱动三 CURD操作1. 查询1.1 单行查询1.2 多行查询2. 插入数据3. 更新数据4. 删除数据四 初始化连接五 使用六 最后一 gorm介绍 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具…

redis: jedis连接超时(需要手动注入连接超时检测的配置)

相关版本说明 服务端: redis_version: 6.2.8 客户端: springBoot: 2.7.7 jedis: 3.8.0 问题 偶发redis连接超时,刷新就又好了,服务日志错误信息如下: JedisConnectionException: Unexpected end of stream.原因 …