docker容器虚拟化网络

Docker学习:容器五种(3+2)网络模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定义网络模式详解 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍容器网络模式, 属于了解范畴,有助于更好的理解Docker的容器之间的访问逻辑。 疑问:为什么要了解容器的网络模式? 前言 首先,容器之间虽然不是物理隔离,但是它们彼此之间默认是不互联互通的,这也有助于保持每个容器的纯粹性,相互之间互不影响。 其次,既然使用了容器,通常情况下,容器需要与宿主机通信,或者A容器与B容器通信而B不需要知道A的存在,或者A/B两容器相互通信。 从而,就引出了本节内容,他们相互通信,就绕不开容器的网络模式 阅读详情

docker容器虚拟化网络

虚拟化网络

Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。

假如我们的物理机有4块物理网卡,我们要创建4个名称空间,而这些设备是可以单独关联至某个单独的名称空间使用的

图片1

如上图所示,把第一块网卡分配给第一个名称空间,第二块分给第二个名称空间,第三块分给第三个名称空间,第四块分给第四个名称空间。此时其它名称空间都是看不见当前所在名称空间的,因为一个设备只能属于一个名称空间。

这种方式使得每一个名称空间都能配置IP地址,并且与外部网络直接通信,因为它们使用的是物理网卡。

但如果我们所拥有的名称空间数量超过物理网卡数量呢?此时我们可以使用虚拟网卡设备,用纯软件的方式来模拟一组设备来使用。Linux内核级支持2种级别设备的模拟,一种是二层设备,一种是三层设备。

Linux内核模拟的二层设备,每个网络接口设备是成对出现的,可以模拟为一根网线的两端,其中一端模拟主机的虚拟网卡,另一端模拟虚拟交换机,就相当于让一个主机连到一个交换机上去。Linux内核原生支持二层虚拟网桥设备,即用软件虚拟交换机的功能。如下图所示:

图片2

那么此时如果再有一个名称空间,它有创建了一对虚拟网卡,一端连接名称空间,一端连接虚拟交换机,此时就相当于两个名称空间连接到了同一个交换机网络中,此时如果两个名称空间的网卡地址配置在同一网段,那么很显然他们之间是可以互相通信的。如下图所示:

图片3

从网络通信的物理设备到网卡都是用纯软件的方式来实现,这种实现方式就叫做虚拟化网络。

单节点容器间通信

如果在同一个物理机上的两个容器想通信,我们的办法就是在这台主机上建立一个虚拟交换机,而后让两个容器各自用纯软件的方式创建一对虚拟网卡,一半在容器上,一半在虚拟交换机上,从而实现通信。如下图所示:

图片4

这就是单节点上两个容器间的通信方式。单节点上两个容器之间的通信也有一些复杂情况,比如我们期望构建的容器要跨交换机通信呢?

图片5

我们做两个虚拟交换机,两个交换机上各自连接不同的容器,如上图所示,此时如果要C1和C3通信又该如何实现呢?其实我们可以通过名称空间创建一对网卡,一端连SW1,另一端连SW2,这样一来两个交换机就连起来了,照理说这样一来C1和C3这两个处于不同交换机的容器就可以实现通信了,但是这样一来又存在另一个问题,那就是如果C1和C3在不同网络呢?如果不在同一网络我们就必须要通过路由转发才能使其通信,也就是我们得在两台交换机之间加一个路由器,其实Linux内核本身就是支持路由转发的,只需要我们将路由转发功能打开即可。此时我们可以再启动一个容器,这个容器里面就跑一个内核,并将其转发功能打开,这样一来就模拟了一台路由器,通过这台路由器来实现路由转发。

图片6

不同节点容器间通信

图片7

如上图所示,此时如果C1要与C5进行通信又该如何实现呢?如果我们采用桥接的方式,很容易产生广播风暴,因此,在大规模的虚拟机或容器的场景中,使用桥接的方式无疑是自取灭亡,所以我们不应该使用桥接的方式来实现通信。

如果一来,我们既不能桥接,又需要与外部来实现通信,那就只能使用NAT技术了。通过DNAT将容器的端口暴露到宿主机上,通过访问宿主机的端口来实现访问容器内部的目的,而在请求端我们需要做SNAT将数据包通过宿主机的真实网卡转发出去。但这样做的话,因为要进行两次NAT转换,所以效率会比较低。

此时我们可以采用一种叫做Overlay Network(叠加网络)的技术来实现不同节点间容器的相互通信功能。

图片8

9

Overlay Network会将报文进行隧道转发,也就是在报文发出去之前要为其添加一个IP首部,也就是上图的1.1和1.2这部分,这里的1.1是源,1.2是目标,当宿主机2收到报文后解封装发现要找的目标容器是C2,于是把包转发给C2。

docker --网络详解 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。 一、docker原生网络 1、bridge网络 bridge模式下容器没有一个公有ip,只有宿主机可以直接访问,外部主机是不可见的。 容器通过宿主机的NAT规则后 阅读详情

相关推荐

Docker容器虚拟化网络

文章目录1. 虚拟化网络1.1 单节点容器间通信1.2 不同节点容器间通信2. Docker容器网络2.1 bridge模式2.2 container模式2.3 host模式2.4 none模式 1. 虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。 每个新创建

欲川 1210

Docker中的网络

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。也就是说,这个Docker容器没有网卡、IP、路由等信息。(3)Docker将 veth pair 设备的一端放在新创建的容器中,并命名为 eth0(容器的网卡),另一端放在主机中, 以 veth* 这样类似的名字命名, 并将这个网络设备加入到 docker0 网桥中。

我的博客 4560

【Kubernetes】容器网络基础

Kubernetes 已经成为了容器编排和管理的事实标准。在 Kubernetes 中,容器网络是关键组件之一,它允许各种容器之间进行通信和相互协作。在本文中,我们将深入探讨 Kubernetes 容器网络的基础知识、概览以及 CNI 插件的介绍,旨在帮助读者更好地理解 Kubernetes 容器网络相关的概念和技术。CNI 插件是 Kubernetes 容器网络中最关键的组件之一。它是容器网络接口(CNI)的实现,用于在 Kubernetes 中创建和管理容器网络。

陈书予 8232

Docker进阶篇-Docker网络

网络模式简介使用方式bridge为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,默认为该模式。--network bridge,默认使用docker0host容器将不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口。none容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pari和网桥连接、IP等。container。

陪我养猪吧的博客 7687

Ubuntu 20.04 环境下Autoware.universe 与 Carla 0.9.13 联合仿真

安装内容: ROS Galactic Autoware.universe based on ROS Galactic Carla 0.9.13 UnrealEngine 4.26 Openplanner (additional files: op-bridge/op-agent/scenariorunner/map data)

mhl1107的博客 1799

Widar3.0复现日志(DFSExtractionCode)

需要使用的matlab基本功能

XiaoQiXiaoWei_J的博客 2437

docker容器虚拟化、容器网络

docker容器虚拟化 1. 虚拟机 虚拟机(virtual machine)就是带环境安装的一种解决方案。 它可以在一种操作系统里面运行另一种操作系统,比如在Windows 系统里面运行Linux 系统。 应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样 缺点 :1 资源占用多 2 冗余步骤多 3 启动慢 2. 容器虚拟化 Linux 容器(Linux Containers,缩写为 LXC)。 Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。 有了容器,就可以将软件运行所需

weixin_47746630的博客 353

如何将TDengine集成到Thingsboard?

1 概述 ThingsBoard是用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准的物联网协议MQTT、CoAP和HTTP实现设备连接,并支持云和本地部署。 ThingsBoard迄今没有导入专业的时序数据库应用,用户可选择的只有PostgreSQL和Cassandra。虽然针对PostgreSQL引入了TimeScale插件,但由于其不是按照宽表的方式组织数据记录,TimeScale的优势根本发挥不出来。总之,这两种数据库不具备高效的数据吞吐能力。 而且,Thingsboard在

Wearable_device的博客 4767

docker容器虚拟化及容器网络

docker容器虚拟化及容器网络1. 虚拟化网络2. 单节点容器间通信3. 不同节点容器间通信4. docker容器网络6. docker的4种网络模式6.1 bridge模式6.2 container模式6.3 host模式6.4 none模式 1. 虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace

此后如竟没有炬火,我便是唯一的光。 275

LVGL移植教程(正点原子)

学习正点原子LVGL移植教程,根据视频教程写的博客

papalila的博客 941

通过miniconda conda安装jupyer的时候报错: InvalidArchiveError(“Error with archive

摘要:本文针对Windows系统使用Conda时出现的InvalidArchiveError错误(文件路径过长或压缩包损坏),提供了解决方案。建议以管理员身份运行PowerShell并执行命令启用长路径支持(LongPathsEnabled),然后重启电脑或终端。作者通过该方法成功解决了jupyter安装问题。附有错误截图和解决后的成功截图。

猿小白的博客 786

Docker容器虚拟化与容器的四种网络模式

Docker容器虚拟化与容器四种网络模式

多回访 541

通用抓取算法AnyGrasp(Graspnet)——本地部署并测试自定义输入数据

背景:GraspNet在数据采集方面,首先将相机固定到机械臂末端,对同一个场景拍摄256个不同的角度,同时场景中的每个物体都会提前采集好3D模型,之后将其投射到仿真环境中,在仿真环境中,对抓取位姿进行打标签,如此完成数据的采集。在运行官方的测试示例时,使用的是路径下的输入数据,可以分析下。color.png(输入):rgb图像(输出):输出的生成抓取位姿的图像depth.png(输入):和当前rgb图像对应的深度图像(保存格式是单通道uint16)meta.mat。

boss-dog 1329

Docker容器网络、虚拟化网络介绍

文章目录1、虚拟化网络2、单节点容器间通信3、不同节点容器间通信4、docker容器网络5、docker的4种网络模式5.1 host模式5.2 container模式5.3 none模式5.4 bridge模式 1、虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。

Gf19991225的博客 673

【ROS机器人系统】实验4 ROS简单应用:激光SLAM与导航

ROS简单应用:激光SLAM与导航 (1)了解机器人和SLAM之间关系 (2)了解激光SLAM (3)了解gmapping和导航

南京大学软件工程硕士在读 2146

【Python计量】linearmodels面板数据回归(一)

我们以伍德里奇《计量经济学导论现代方法》的”第14章高级面板数据方法“的案例14.1为例,使用jtrain中的数据来进行固定效应估计。

mfsdmlove的博客 9277

Docker容器的虚拟化网络

文章目录1 虚拟化网络2 单节点容器间通信3 不同节点容器间通信4 Docker容器网络5 Docker的四种网络模式5.1 host模式5.2 container模式5.3 none模式5.4 bridge模式 1 虚拟化网络 Linux内核支持六种名称空间,只要在用户空间有相应的客户端工具,都可以对对应的名称空间进行操作。 主机名和域名的叫:UTS 用户的叫:USER 挂载文件系统的:Mount 进程间通信的:IPC 进程ID的:Pid 网络的:Net 网络作为docker容器化实现的6个名

weixin_46727129的博客 687

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

docker容器虚拟化 网络

docker容器虚拟化 网络一、虚拟化网络1.1 单节点容器间通信1.2 不同节点容器间通信二、docker 网络三、docker网络的四种模式3.1 bridge模式3.2 container模式3.3 host模式3.4 none模式 一、虚拟化网络 Linux 容器(Linux Containers,缩写为 LXC)。 Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。 有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。 容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软

m0_46289146的博客 257

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

虚拟化网络、Docker容器网络

虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。 每个新创建的 Network Namespace 默认有一个本地环回接口 lo,除此之外,所有的其他网络设备(物理/虚拟网络接口,网桥等)只能属于一个 Network Namespace。每个 socket 也只能属

xumneg111的博客 343

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Docker容器虚拟化和网络

目录容器虚拟化虚拟化网络单节点荣期间通信不同节点容器间通信Docker容器网络docker的四种网络模式bridge模式container模式host模式none模式 容器虚拟化 虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。 假如我们的物理机有4块物理网卡,我们

NeaWalke的博客 280

Docker容器技术之容器虚拟化网络(4)

文章目录1. 虚拟化网络2. 单节点容器间通信3. 不同节点容器间通信4. docker容器网络5. docker的4种网络模式5.1 bridge模式5.2 container模式5.3 host模式5.4 none模式 1. 虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此

DragonYear的博客 734

docker容器虚拟化和网络

虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。 假如我们的物理机有4块物理网卡,我们要创建4个名称空间,而这些设备是可以单独关联至某个单独的名称空间使用的 如上图所示,把第一块网卡分配给第一个名称空间,第二块分给第二个名称空间,第三块分给第三个名称空间,第四块分

a512153770的博客 179

docker容器虚拟化-容器网络基础

3、docker镜像制作生成 1、先要拉取个镜像到本地 [root@king ~]# docker pull busybox Using default tag: latest latest: Pulling from library/busybox b71f96345d44: Pull complete Digest: sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60 Status: Downloaded

点点点_回车的博客 692
上一篇: docker容器网络
下一篇: dockr容器lnmp
在你书包里拉屎
博客等级 码龄5年 149粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值