【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解

news2024/11/20 22:42:44

🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前学习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自定义网络提供了一种灵活且强大的网络模式,允许用户创建和管理自己的网络。自定义网络提供了逻辑隔离和灵活的网络配置选项,使得容器可以在该网络中进行通信,并支持服务发现和负载均衡等功能。


如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。

在这里插入图片描述

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

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

相关文章

建筑工地的水泥分配和料场选址问题(Cplex求解线性规划模型+粒子群搜索算法)【Java实现】

问题 问题一求解 求解思路 该问题可以直接建立一个线性规划模型,然后使用cplex求解器来求解 模型 决策变量 x i j :第 i 个料场向第 j 个工地运送的水泥吨数,其中 1 ≪ i ≪ m ; 1 ≪ j ≪ n 其中 x i j 的取值范围是 [ 0 , d…

prisma的增删改查

目录 一、单表1.增自增问题2.查询所有信息3.查询以l开头的数据4.查询限定数据5.查询唯一的数据6.分页查询7.改8.删 二、联表1.新增文章2.将文章和用户关联3.查询用户的同时查询用户的文章4.关联查询(级联操作,链式调用) 一、单表 模型 mode…

腾讯云轻量服务器测评:2核 2G 4M

腾讯云轻量2核2G4M服务器,4M带宽下载速度可达512KB/秒,系统盘为50GB SSD盘,300GB月流量,地域节点可选上海、广州和北京,腾讯云百科分享腾讯云2核2G4M轻量应用服务器配置性能表: 目录 腾讯云轻量2核2G4M服…

Spring MVC 中的常见注解的用法

目录 认识 Spring MVC什么是 Spring MVCMVC 的定义 Spring MVC 注解的运用1. Spring MVC 的连接RequestMapping 注解 2. 获取参数获取单个参数获取多个参数传递对象表单传参后端参数重命名RequestBody 接收 JSON 对象PathVariable 获取 URL 中的参数上传文件 RequestPart获取 C…

最小生成树,Kruskal算法

最小生成树(Minimum Spanning Tree,简称 MST)是一个连通图的子图,它包含图中的所有节点,并且是一个树(无环连通图),同时保证连接所有节点的边的权重之和最小。 在一个带权重的连通图…

R语言实现非等比例风险生存资料分析(1)

#非等比例风险的生存资料分析 ###1 生成模拟数据### library(flexsurv) set.seed(123) # 生成样本数量 n <- 100 # 生成时间数据 time <- sample(1:1000,n,replaceF) # 调整shape和scale参数以控制生存曲线形状 # 生成事件数据&#xff08;假设按比例风险模型&#xff0…

【SpringBoot】中的ApplicationRunner接口 和 CommandLineRunner接口

1. ApplicationRunner接口 用法&#xff1a; 类型&#xff1a; 接口 方法&#xff1a; 只定义了一个run方法 使用场景&#xff1a; springBoot项目启动时&#xff0c;若想在启动之后直接执行某一段代码&#xff0c;就可以用 ApplicationRunner这个接口&#xff0c;并实现接口…

YB2416是支持高电压输入的同步降压电源管理芯片

简介&#xff1a; YB2416是支持高电压输入的同步降压电源管理芯片&#xff0c;在 4~30V 的宽输入电压范围内可实现3A的连续电流输出。通过调节 FB 端口的分压电阻&#xff0c;可以输出1.8V到28V的稳定电压。YB2416具有优秀的恒压/恒流(CC/C)特性。YB2416 采用电流模式的环路控制…

UI自动化测试常见的Exception

一. StaleElementReferenceException&#xff1a; - 原因&#xff1a;引用的元素已过期。原因是页面刷新了&#xff0c;此时当然找不到之前页面的元素。- 解决方案&#xff1a;不确定什么时候元素就会被刷新。页面刷新后重新获取元素的思路不变&#xff0c;这时可以使用python的…

【云原生】【k8s】从小白到大神之路之学习运维第82天-------基于Prometheus监控Kubernetes集群

第四阶段 时 间&#xff1a;2023年8月17日 参加人&#xff1a;全班人员 内 容&#xff1a; 基于Prometheus监控Kubernetes集群 目录 一、Prometheus简介 &#xff08;一&#xff09;Prometheus的基本原理 &#xff08;二&#xff09;Prometheus优势 &#xff08;三&a…

java.security.InvalidKeyException: Illegal key size

JDK受版本安全限制&#xff0c;默认只允许128位长度以内的。秘钥长度&#xff0c;如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. java运行时环境默认读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美…

【IMX6ULL驱动开发学习】06.DHT11温湿度传感器驱动程序编写与测试

一、DHT11简介 DHT11是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器&#xff0c;会测量空气中湿度&#xff0c;再根据测量结果决定是否继续加湿。 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;具有超小体积、极低功耗的特点…

配置 autofs

配置 autofs 配置 autofs&#xff0c;按照以下要求自动挂载远程用户的家目录&#xff0c;要求如下&#xff1a; host.domain8.rhce.cc ( 172.25.250.250 ) NFS 导出 /rhome 到您的系统。此文件系统包含 为用户 remoteuser1 预配置的主目录 remoteuser1 的主目录是 host.dom…

【快速解决】尝试卸载 Office 时出现错误代码 30029-4,解决office安装报错等问题,解决无法安装office的问题

目录 ​编辑 前言&#xff08;本文可以快速解决你遇到的问题&#xff09; 问题描述 解决无法安装问题的步骤分为以下两个主要阶段&#xff1a; 第一步&#xff1a;卸载现有的 Office 软件 第二步&#xff1a;安装所需的新版 Office 安装步骤如下&#xff1a; 1.启动微信…

看完《孤注一掷》:原来这类人最容易被电信诈骗!

最近&#xff0c;你看了诈骗电影《孤注一掷》吗&#xff1f; “想成功先发疯&#xff0c;不顾一切向钱冲&#xff1b;拼一次富三代&#xff0c;拼命才能不失败&#xff1b;今天睡地板&#xff0c;明天当老板&#xff01;”诈骗工厂里的被骗去打黑工的人们一次次高呼着朗朗上口…

基于Java+SpringBoot+vue前后端分离企业oa管理系统设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

【LangChain】P0 LangChain 是什么与准备工作

LangChain 是什么与准备工作 LangChain 是什么&#xff1f;所谓增强数据感知所谓与环境互动 Get Started下载安装 langchain下载安装 openai获取 OpenAI API Key通过名为 openai_api_key 的参数传递密钥 LangChain 是什么&#xff1f; LangChain 是一个利用语言模型开发应用程序…

YOLOv8改进后效果

数据集 自建铁路障碍数据集-包含路障&#xff0c;人等少数标签。其中百分之八十作为训练集&#xff0c;百分之二十作为测试集 第一次部署 版本&#xff1a;YOLOv5 训练50epoch后精度可达0.94 mAP可达0.95.此时未包含任何改进操作 第二次部署 版本&#xff1a;YOLOv8改进版本 首…

“智”创未来,引领信息化新风潮,数字转型再添强动力

如今企业信息化已经成为了现代商业发展的大势所趋。信息化的浪潮不但带来了新的机遇&#xff0c;也对企业提出了更高的要求。企业需要借助科技的力量&#xff0c;实现数字化、智能化、高效化的转型&#xff0c;以应对激烈的市场竞争。 湖南远跃作为国内领先的信息一体化 解决方…

【Linux】进程的基本属性|父子进程关系

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;Linux仓库 个人专栏&#xff1a;Linux专栏 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言进程属性1.进程PID和PPID2.fork函数创建子进程1&#xff09;为什…