【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解
🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。
🏀系列专栏:陈童学的日记
💡其他专栏:C++STL,感兴趣的小伙伴可以看看。
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝
⛱️万物从心起,心动则万物动🏄♂️

前言:Docker 可以让开发者打包他们的应用以及依赖包到一个
轻量级、可移植的容器中,然后发布到任何流行的Linux系统机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
之前文章我们提及过Docker network以及几种网络模式,但没有过多的深入,那么本文就会深入讲解一下Dockernetwork的bridge、host、none、container以及自定义网络。
Docker network之bridge、host、none、container以及自定义网络的详细讲解
- Docker network 之bridge
- Docker network 之host
- Docker network 之none
- Docker network 之container
- Docker network 之自定义网络
Docker network 之bridge
在Docker中,bridge网络是默认的网络驱动程序,它
提供了一种简单而方便的方式来连接Docker容器和主机。下面是关于Docker bridge网络的详细讲解:
1.概述:
Bridge网络允许容器之间通过网络进行通信,并且容器可以通过主机网络访问外部资源。每当你安装Docker时,就会自动创建一个名为"docker0"的虚拟网桥,作为主机和容器之间通信的桥接点。
2.桥接方式:
ridge网络采用的是基于MAC地址的桥接方式,每个容器都会分配一个唯一的MAC地址,并且可以通过容器名称或ID进行通信。
3.IP分配:
每个容器在启动时都会自动分配一个IP地址,这个IP地址是在桥接网络的地址范围内生成的。默认情况下,Docker使用172.17.0.0/16子网作为桥接网络的地址范围。
4.连接到桥接网络:
可以使用--network参数来指定容器连接到哪个桥接网络。如果没有指定网络,则默认连接到bridge网络。可以使用docker network create命令创建自定义的桥接网络,并使用--network参数将容器连接到该网络。
5.主机访问:
通过桥接网络,容器可以通过主机网络访问外部资源,例如互联网或其他本地网络。桥接网络会自动配置主机和容器间的路由规则,使得容器可以通过主机进行网络通信。
6.容器之间通信:
桥接网络允许容器之间通过IP地址进行通信,可以使用容器的名称或ID来标识目标容器。例如,可以使用ping命令来测试容器之间的连通性。
7.网络别名:
桥接网络还支持为容器分配多个网络别名,这样可以在同一网络中使用不同的名称访问容器。这在容器之间进行服务发现和负载均衡时非常有用。

总结来说,
Docker bridge网络提供了容器之间和容器与主机之间的通信方式,并且可以连接到外部网络资源。它是Docker默认的网络驱动程序,通过桥接方式实现容器之间的通信,并自动分配IP地址和配置路由规则。
Docker network 之host
在Docker中,host网络是一种网络驱动程序,它允许容器与主机共享网络命名空间。使用host网络驱动程序时,容器将直接使用主机的网络栈,与主机共享IP地址和端口。下面是关于Docker host网络的详细讲解:
1.网络共享:
使用host网络时,容器与主机共享相同的网络栈,这意味着它们具有相同的IP地址和端口空间。容器可以直接使用主机的网络设备和网络配置。
2.网络性能:
由于容器直接使用主机的网络栈,host网络驱动可以获得最佳的网络性能。容器之间的通信不需要通过任何网络层的封装和解封装,减少了网络延迟和开销。
3.网络隔离:
与其他网络驱动程序相比,host网络提供了最小的网络隔离。容器之间可以直接访问彼此的端口和服务,没有任何网络地址转换或端口映射。
4.端口冲突:
由于容器与主机共享相同的端口空间,可能会导致端口冲突。如果主机上已经有一个服务在使用某个端口,那么容器将无法使用该端口。
5.容器访问外部资源:
容器可以通过host网络直接访问主机网络和外部资源,例如互联网或其他本地网络。容器可以使用主机的网络设备和配置,无需进行任何额外的网络设置。
需要注意的是,使用host网络可能会降低容器的安全性和隔离性。由于容器与主机共享网络栈,容器之间可以直接相互访问,这可能增加了潜在的安全风险。因此,在使用host网络时,需要谨慎考虑网络安全和隔离性的需求。

总结起来,
Docker host网络允许容器与主机共享网络栈,具有最佳的网络性能,容器可以直接访问主机网络和外部资源。但需要注意可能的端口冲突和降低的安全性和隔离性。
Docker network 之none
在Docker中,none网络是一种特殊的网络驱动程序,它提供了一种完全隔离的网络环境,即容器将没有任何网络连接。下面是关于Dockernone网络的详细讲解:
1.完全隔离:
使用none网络时,容器将没有任何网络连接,包括网络接口和IP地址。这意味着容器无法通过网络与其他容器或主机进行通信。
2.适用场景:
none网络适用于那些不需要网络连接的容器,例如一些执行计算任务的容器或需要与外部环境完全隔离的容器。
3.容器访问外部资源:
由于容器没有任何网络连接,因此无法直接访问主机网络或外部资源,例如互联网或其他本地网络。如果需要访问外部资源,可以通过其他方式,如使用主机的网络连接或使用其他网络驱动程序。
4.网络配置:
当使用none网络时,容器不会分配IP地址,也不会创建任何网络接口。这使得容器无法通过网络进行通信,并且无法通过IP地址来标识和访问容器。
5.容器之间通信:
由于none网络不提供任何网络连接,容器之间无法直接进行通信。如果需要容器之间的通信,可以考虑使用其他网络驱动程序,如bridge、overlay等。
需要注意的是,使用none网络将完全隔离容器的网络环境,这可能导致容器无法完成某些需要网络连接的任务,或者无法访问外部资源。因此,在使用none网络时,需要确保已经考虑到了这些限制,并根据实际需求做出合适的选择。
总结来说,
Docker none网络提供了一种完全隔离的网络环境,容器在该网络中没有任何网络连接。它适用于不需要网络连接的容器,但也意味着容器无法通过网络与其他容器或主机进行通信,并且无法访问外部资源。
Docker network 之container
在Docker中,container网络是一种特殊的网络模式,它允许将一个容器的网络栈直接共享给另一个容器使用。这样可以实现容器之间的网络通信,而无需通过网络接口和网络配置。下面是关于Docker container网络的详细讲解:
1.容器网络共享:
使用container网络模式时,一个容器的网络栈(包括网络接口和IP地址)可以直接共享给另一个容器使用。这样,两个容器之间可以通过本地主机进行内部通信,就像它们运行在同一个主机上一样。
2.网络隔离:
尽管容器之间可以通过共享网络栈进行通信,但它们仍然是相互隔离的。每个容器都有自己的文件系统、进程和命名空间,因此它们之间的环境是独立的。
3.网络配置:
当一个容器连接到另一个容器的网络时,它会自动获得一个新的网络接口和IP地址。这个IP地址是在共享网络的子网中生成的,并且可以通过容器名称或ID进行访问。
4.容器之间通信:
通过container网络模式,容器可以直接使用本地主机进行内部通信。它们可以通过IP地址或容器名称进行标识和访问。
5.网络别名:
使用container网络模式时,可以为容器分配多个网络别名。这样,可以使用不同的名称访问同一个容器,这对于服务发现和负载均衡非常有用。
6.容器访问外部资源:
由于container网络模式是基于主机网络的,因此容器可以通过本地主机访问外部资源,例如互联网或其他本地网络。
需要注意的是,使用container网络模式将共享一个容器的网络栈给另一个容器使用,这可能会导致网络性能的损失。同时,由于容器之间共享网络,需要确保容器之间的通信是安全和可靠的。

总结来说,
Docker container网络模式允许一个容器的网络栈直接共享给另一个容器使用,实现容器之间的内部通信。它提供了简单且高效的方式来连接容器,并允许容器通过本地主机访问外部资源。
Docker network 之自定义网络
在Docker中,自定义网络是一种灵活且强大的网络模式,它允许用户创建和管理自己的网络。自定义网络提供了一种逻辑隔离的网络环境,使得容器可以在该网络中进行通信。下面是关于Docker自定义网络的详细讲解:
1.创建自定义网络:
使用Docker命令或Docker Compose可以创建自定义网络。用户可以指定网络的名称、网、网关和其他配置选项。
2.网络隔离:
每个自定义网络都是一个逻辑隔离的网络环境,容器可以在该网络中进行通信。不同的自定义网络之间是相互隔离的,容器只能在同一个自定义网络中进行通信。
3.容器连接到自定义网络:
创建自定义网络后,可以将容器连接到该网络。容器连接到自定义网络后,会获得一个新的网络接口和IP地址,可以通过该IP地址在同一网络中进行通信。
4.网络别名和服务发现:
使用自定义网络,可以为容器分配网络别名。这样,可以通过容器名称或别名来标识和访问容器,而不仅仅是使用IP地址。这对于服务发现和负载均衡非常有用。
5.外部访问:
通过端口映射,可以将自定义网络中的容器暴露给外部网络,以便从外部网络访问容器。这可以通过将容器的端口映射到主机的端口来实现。
6.多网络连接:
容器可以连接到多个自定义网络,以实现不同网络环境之间的通信。这使得容器可以同时参与多个网络,并实现复杂的网络拓扑。
7.网络驱动程序:
Docker支持多种网络驱动程序,包括bridge、overlay和macvlan等。自定义网络可以选择适合特定需求的驱动程序,以获得所需的网络功能和性能。

总结来讲,
Docker自定义网络提供了一种灵活且强大的网络模式,允许用户创建和管理自己的网络。自定义网络提供了逻辑隔离和灵活的网络配置选项,使得容器可以在该网络中进行通信,并支持服务发现和负载均衡等功能。
如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。

相关文章:
【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解
🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…...
滑模控制器理论推导和matlab/simulink实例分享
滑模控制的运动轨迹主要分为两个方面:(1)系统的任意初始状态向滑模面运动阶段;(2)系统到达滑模面后并且慢慢趋于稳定的阶段。所以,对于滑模变结构控制器的设计,对应于系统运动的两个阶段,可以分为两个部分:…...
git 操作
git切换ssh和http协议 切换协议: 查看当前remote git remote -v 切换到http: git remote set-url https://github.com/username/repository.git 切换到ssh: git remote set-url gitgithub.com:username/repository.git 某些文件不想提交…...
自建hexo博客并将原有的文章发布其上
1、保存粘贴到memo9中的博客文章,并将txt转换成word文档 varPowerShellPath, CommandLine: string; // , ScriptPath begin//save to txtMemo9.Lines.SaveToFile(test.txt);memo10.Lines.SaveToFile(txt2word.ps1);//save as docxPowerShellPath : powershell.exe…...
【双指针_和为 s 的两个数_C++】
和为s的两个数字 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int n nums.size();int left 0;int right n-1;while(left<right){if(nums[left]nums[right]>target) right--;else if(nums[left]nums[right]<tar…...
HTML5的介绍和基本框架
目录 HTML5 HTML5介绍 HTML5的DOCTYPE声明 HTML5基本骨架 html标签 head标签 body标签 title标签 meta标签 在vscode中写出第一个小框架 HTML5 HTML5介绍 HTML5是用来描述网页的一种语言,被称为超文本标记语言。用HTML5编写的文件,后缀以.ht…...
代码随想录算法训练营第58天|动态规划part15|392.判断子序列、115.不同的子序列
代码随想录算法训练营第58天|动态规划part15|392.判断子序列、115.不同的子序列 392.判断子序列 392.判断子序列 思路: (这道题也可以用双指针的思路来实现,时间复杂度也是O(n)) 这道题应该算是编辑距…...
日常BUG——普通页面跳转tabbar页面报错
😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 微信小程序页面跳转的时候出现下面的问题: wx.redirectTo({url: /pages/index/i…...
SpringBoot复习:(48)RedisAutoConfiguration自动配置类
RedisAutoConfiguration类代码如下: 可以看到在这个类中配置了2个bean: redisTemplate和stringRedisTemplate. 而它通过EnableConfigurationProperties(RedisProperties.class)注解,把配置文件中配置的Redis相关的信息引入进来了,RedisPrope…...
软硬件免费,服务收费:网络安全商业模式正在被颠覆
大数据产业创新服务媒体 ——聚焦数据 改变商业 从元宇宙到造汽车,重回国内A股市场五年的360一路苦追热点。一直到大模型横空出世,360才算真正找到感觉,经历一次战略上的回归。 在8月9日的互联网安全大会上,一袭红衣的红衣教主周…...
变形金刚:从零开始【01/2】
一、说明 在我们的日常生活中,无论你是否是数据科学家,你都在单向地使用变压器模型。例如。如果您使用的是 ChatGPT 或 GPT-4 或任何 GPT,那么在为您回答问题的框中是变压器的一部分。如果您是数据科学家或数据分析师,则可能正在使…...
Opencv特征检测之ORB算法原理及应用详解
Opencv特征检测之ORB算法原理及应用详解 特征是图像信息的另一种数字表达形式。一组好的特征对于在指定 任务上的最终表现至关重要。视觉里程 (VO) 的主要问题是如何根据图像特征来估计相机运动。但是,整幅图像用来计算分析通常比较耗时,故而转换为分析图像中的特征点的运动…...
【es6】函数柯里化(Currying)
柯里化(Currying):把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数。 柯里化由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的,它是 Mos…...
线上多域名实战
本文博主给大家分享线上多域名实战,当线上主域名不可用的情况下,启用备用域名完成网站高可用保障。 网站的高可用性一直是网站运维的重中之重。一旦网站宕机,不仅会造成巨大的经济损失,也会严重影响用户体验。备份域名就是一种实现…...
【C语言】上手实验
实验1 顺序、分支结构 程序填空 1. 题目描述:输入三个整数存放在变量a、b、c中,找出三个数中的最大值放于max中,并将其输出。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上…...
设计HTML5表单
HTML5基于Web Forms 2.0标准对HTML4表单进行全面升级,在保持简便、易用的基础上,新增了很多控件和属性,从而减轻了开发人员的负担。表单为访问者提供了与网站进行互动的途径,完整的表单一般由控件和脚本两部分组成。 1、认识HTML…...
使用Kaptcha生成验证码
说明:验证码,是登录流程中必不可少的一环,一般企业级的系统,使用都是专门制作验证码、审核校验的第三方SDK(如极验)。本文介绍,使用谷歌提供的Kaptcha技术,制作一个简单的验证码。 …...
【vue】vue中的插槽以及使用方法
插槽 普通插槽 1、在父组件中直接调用子组件的标签,是可以渲染出子组件的内容;如果在子组件标签中添加了内容,父组件就渲染不出来了; ParentComponent.vue: <template><div><h1>Parent Componen…...
javaScript:分支语句的理解与使用(附带案例)
目录 前言 补充 另一种说法 分支语句 1.if语句 a.单分支语句 注意 b.双分支语句 注意点 c.多分支语句(分支语句的联级语句) 补充 2.三元运算符 三元运算符 ? : 使用场景 3.switch语句 解释 释义:…...
MySQL高阶知识点(一)事务的并发问题和隔离级别
简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。 在 MySQL 中,事务支持是在引擎层实现的。 MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。 如 MySQL 原生的 MyISAM 引擎就不支持…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
