【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 引擎就不支持…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
