【docker】docker network 网络

news2024/9/22 23:37:05

docker network 网络

  • Docker 为什么需要网络管理
  • docker 网络架构简介
    • CNM
    • Libnetwork
    • 驱动
  • 常见网络类型
  • docker 网络管理命令

Docker 为什么需要网络管理

容器的网络默认与宿主机及其他容器都是相互隔离, 但同时我们也要考虑下面的一些问题, 比如

  • 多个容器之间是如何通信的
  • 容器和宿主机是如何通信的
  • 容器和外界主机是如何通信的
  • 容器中要运行一些网络应用(如 nginx、web 应用、数据库等),如果要让外部也可以访问这些容器内运行的网络应用应该如何实现
  • 容器不想让它的网络与宿主机、与其他容器隔离应该如何实现
  • 容器根本不需要网络的时候应该如何实现
  • 容器需要更高的定制化网络(如定制特殊的集群网络、定制容器间的局域网)应该如何实现

上述的这些问题都需要我们对容器的网络进行合理的管理才能解决,这就体现出了容器网络管理的重要性。

docker 网络架构简介

Docker 容器网络是为应用程序所创造的虚拟环境的一部分,它能让应用从宿主机操作系统的网络环境中独立出来,形成容器自有的网络设备、IP 协议栈、端口套接字、IP 路由表、防火墙等等与网络相关的模块。

Docker 为实现容器网络,主要采用的架构由三部分组成:CNM、Libnetwork 和驱动。

CNM

Docker 网络架构采用的设计规范是 CNM(Container Network Model)。CNM 中规定了 Docker 网络的基础组成要素:Sandbox、Endpoint、Network。

在这里插入图片描述

  • Sandbox:提供了容器的虚拟网络栈,也即端口、套接字、IP 路由表、防火墙、DNS 配置等内容。主要用于隔离容器网络与宿主机网络,形成了完全独立的容器网络环境。
  • Network:Docker 内部的虚拟子网,使得网络内的参与者能够进行通讯。
  • Endpoint:就是虚拟网络的接口,就像普通网络接口一样,Endpoint 的主要职责是负责创建连接。Endpoint 类似于常见的网络适配器,那也就意味着一个 Endpoint 只能接入某一个网络, 当容器需要接入到多个网络,就需要多个 Endpoint。

如上图所示,容器 B 有两个 Endpoint 并且分别接入 Networkd A 和 Network B。那么容器 A 和容器 B 之间是可以实现通信的,因为都接入了 NetworkA。但是容器 A 和容器 C 不可以通过容器 B 的两个 Endpoint 通信。

Libnetwork

Libnetwork 是 CNM 的一个标准实现。Libnetwork 是开源库,采用 Go 语言编写(跨平台的),也是 Docker 所使用的库,Docker 网络架构的核心代码都在这个库中。Libnetwork 实现了 CNM 中定义的全部三个组件,此外它还实现了本地服务发现、基于 Ingress 的容器负载均衡,以及网络控制层和管理层等功能。

驱动

驱动主要负责实现数据层相关内容,例如网络的连通性和隔离性是由驱动来处理的。
驱动通过实现特定网络类型的方式扩展了 Docker 网络栈,例如桥接网络和覆盖网络。

Docker 内置了若干驱动,通常被称作原生驱动或者本地驱动。例如 Bridge Driver、Host Driver、Overlay Driver、MacVLan Driver、IPVLan Driver、None Driver 等。每个驱动负责创建其上所有网络资源的创建和管理。

常见网络类型

  1. bridge 网络

bridge 驱动会在 Docker 管理的主机上创建一个 Linux 网桥。默认情况下,网桥上的容器可以相互通信。也可以通过 bridge 驱动程序配置,实现对外部容器的访问。Docker 容器的默认网络驱动.当我们需要多个容器在同一个 Docker 主机上通信时,桥接网络是最佳选择。

  1. host 网络

对于独立容器,移除容器和 Docker 主机之间的网络隔离,并直接使用主机的网络。当网络堆栈不应该与 Docker 主机隔离,但是希望容器的其他资源被隔离时,主机网络是最佳选择。

  1. container 网络

这个模式指定新创建的容器和引进存在的一个容器共享一个网络 ,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 ip,而是和一个指定的容器共享 ip,端口等,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信

  1. none 网络

Docker 容器拥有自己的 Network Namespace,但是,并不为 Docker 容器进行任何网络配置。也就是说,这个 Docker 容器没有网卡、IP、路由等信息。容器完全网络隔离。

  1. overlay 网络

借助 Docker 集群模块 Docker Swarm 搭建的跨 Docker Daemon 网络。将多个Docker 守护进程连接在一起,使集群服务能够相互通信。当我们需要运行在不同Docker 主机上的容器进行通信时,或者当多个应用程序使用集群服务协同工作时,覆盖网络是最佳选择。

在这里插入图片描述
另外,在 Docker 安装时,会自动安装一块 Docker 网卡称为 docker0,它是一个网桥设备,主要用于 Docker 各容器及宿主机的网络通信。

docker 网络管理命令

在这里插入图片描述

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

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

相关文章

Excel图表生成:自动化创建与修改Excel图表的技术指南

目录 引言 Excel图表基础 图表的作用与类型 Excel图表制作的基本步骤 自动化创建Excel图表 使用VBA宏自动化创建图表 自动化创建柱状图 自动化创建折线图 使用Python和第三方库自动化创建图表 安装必要的库 编写Python代码 修改Excel图表 修改图表类型和样式 自动…

网络学习-eNSP配置NAT

NAT实现内网和外网互通 #给路由器接口设置IP地址模拟实验环境 <Huawei>system-view Enter system view, return user view with CtrlZ. [Huawei]undo info-center enable Info: Information center is disabled. [Huawei]interface gigabitethernet 0/0/0 [Huawei-Gigabi…

什么是COB超微小间距会议一体机?LED智能会议一体机重塑会议体验

在当今这个快节奏、高效率的时代&#xff0c;会议作为企业日常运营中不可或缺的一环&#xff0c;其效率与体验直接影响着企业的决策速度与团队协作能力。随着科技的飞速发展&#xff0c;传统的会议设备已难以满足现代会议室的多元化需求&#xff0c;LED智能会议一体机&#xff…

0基础跟德姆(dom)一起学AI Python进阶09-算法和数据结构

* 数据结构介绍 * 列表 * 链表 * 算法介绍 * 排序相关(冒泡, 插入, 选择, 快速排序) --- 1.数据结构和算法简介 * 程序 大白话翻译, **程序 数据结构 算法** * 数据结构 指的是 **存储, 组织数据的方式.** * 算法 指的是 **为了解决实际业务问题而思考 思路和方法…

气膜体育馆投资分析:未来体育设施的新方向—轻空间

随着全民健身运动的普及和城市化进程的加快&#xff0c;现代体育馆的需求日益增长。相较于传统建筑&#xff0c;气膜体育馆凭借其高性价比、快速搭建和灵活性&#xff0c;逐渐成为投资者关注的新型体育设施。从投资角度来看&#xff0c;气膜体育馆具备许多优势&#xff0c;能够…

IDEA怎么让控制台自动换行

IDEA怎么让控制台自动换行 操作流程 菜单>File>Settings>Editor>General>Console>勾选Use soft wraps in console 换行效果

广州市小学信息技术教案和课件

第一册 第二册 第三册 需要的加v

突发!如何应对微信小程序与公众号下发统一消息接口调整

前言 国庆节前夕&#xff0c;被同事突然Q到&#xff1a;“咱们的公众号消息推送是不是要修改&#xff1f;”&#xff0c;我一脸茫然&#xff0c;紧接着&#xff0c;他直接甩给我一个链接&#xff0c;我打开后一看。一瞬间愉快的心情完全被打乱了。 但是&#xff0c;不要慌&…

基于开源WQ装备数据的知识图谱全流程构建

随着大数据和人工智能技术的快速发展&#xff0c;构建领域特定的知识图谱已成为信息管理和决策支持的重要手段。武器装备知识图谱不仅能够对复杂的武器系统进行结构化展示&#xff0c;还可以通过关系推理揭示武器与装备之间的潜在联系。 1、技术路线 本文将详细介绍如何基于开…

Leetcode第414周赛第二题:3281. 范围内整数的最大得分

一&#xff1a;题目&#xff1a; 给你一个整数数组 start 和一个整数 d&#xff0c;代表 n 个区间 [start[i], start[i] d]。 你需要选择 n 个整数&#xff0c;其中第 i 个整数必须属于第 i 个区间。所选整数的 得分 定义为所选整数两两之间的 最小 绝对差。 返回所选整数的…

程序员如何写笔记?

word。没错&#xff0c;我也看了网上一大堆软件&#xff0c;还有git管理等等。个人认为如果笔记只是记录个人的经验积累&#xff0c;一个word就够了&#xff0c;那些notepad&#xff0c;laTex个人觉得不够简练。word。 1.word可以插入任何文件附件(目前最大的word 200MB也没出现…

Python编码系列—Python社区驱动开发:共创开源生态的力量

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Furion友好异常

一、一图流 二、注册友好异常服务 在 Furion 框架中&#xff0c;友好异常处理服务可以通过 AddFriendlyException 方法进行注册&#xff0c;这个方法通常在项目的启动配置中使用。 using Microsoft.Extensions.DependencyInjection;namespace YourNamespace {[AppStartup(800…

组件拆分综合案例——商城首页

欢迎大家订阅【Vue2Vue3】入门到实践 专栏&#xff0c;开启你的 Vue 学习之旅&#xff01; 文章目录 一、传统的 HTML/CSS 写法二、现代的 Vue.js 组件化写法 本篇文章参考黑马程序员 【组件拆分综合案例——商城首页】 一、传统的 HTML/CSS 写法 App.vue文件&#xff1a; &l…

JAVA便捷同城圈信息汇聚服务预约任务发布平台系统小程序源码

​便捷同城圈&#xff0c;信息汇聚服务预约任务发布平台系统 &#x1f3d9;️ 开篇&#xff1a;同城生活&#xff0c;一键触达 在这个快节奏的城市里&#xff0c;你是否经常为找不到靠谱的服务、错过重要的信息或是有小任务却找不到人帮忙而烦恼&#xff1f;别担心&#xff0c…

运维学习————GitLab的搭建和使用

目录 一、简介 1、概念 2、 好处 3、优势 二、 下载安装 1、准备工作 2、下载安装 3、配置 三、常用命令 四、GitLab的使用 1、解决无法访问 ​编辑2、修改密码 3、gitlab结合linux的使用 1、使用用户名和密码操作 2、使用ssh秘钥操作 4、卸载GitLab 5、gi…

铁路故障多分类数据集(猫脸码客 第183期 )

铁路故障多分类数据集研究&#xff1a;基于深度学习的ECARRNet模型 引言 东南亚地区以其庞大的铁路网络著称&#xff0c;这一基础设施在促进区域经济发展、加强国家间联系方面发挥着不可替代的作用。然而&#xff0c;随着铁路网络的不断扩展和运营时间的增长&#xff0c;铁路…

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆&#xff0c;该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使…

oracle TAB$ 基表删除恢复

接客户服务请求&#xff0c;说是一个好久没有用的数据库在打开时遭遇ora-00600 16703 1403 28 错误&#xff0c;这中一看就是oracle 的tab$基表被删除了。 客户环境 aix 平台&#xff1b; 索性数据库比较小只有10G左右&#xff0c;懒得的弄bbed&#xff0c;直接oracle dul 抽…

【信创】Linux终端禁用USB存储 _ 统信 _ 麒麟 _ 方德

原文链接&#xff1a;【信创】Linux终端禁用USB存储 | 统信 | 麒麟 | 方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在Linux终端下禁用USB存储设备的文章。禁用USB存储设备可以提高系统的安全性&#xff0c;防止未经授权的人员将数据拷贝到外部存储设备或…