【docker】docker网络六种网络模式

Docker 网络模式总结

网络模式描述使用场景
bridge默认的网络模式,容器之间通过虚拟网桥通信,容器与宿主机隔离。单机部署、本地开发、小型项目
host容器与宿主机共享网络堆栈,容器直接使用宿主机的 IP 地址。高性能网络应用、日志处理、大量与宿主机网络交互的场景
none容器没有网络接口,完全隔离,不能与外部通信。安全隔离、高度自定义网络配置的容器
container容器共享网络命名空间,包括 IP 地址和端口空间。紧密耦合的容器,需要共享网络堆栈的场景
overlay跨多个主机的容器通信,常用于分布式系统。微服务架构、跨主机容器通信、分布式应用
macvlan容器拥有独立的 MAC 地址,容器直接与物理网络通信。需要与物理网络直接通信、容器作为网络设备的场景

Bridge 网络模式

在 Docker 中,bridge 是默认的网络模式。每当你创建一个容器但没有指定网络时,Docker 会自动将容器连接到名为 bridge 的网络。
在此模式下,容器会连接到一个虚拟的局域网(LAN),容器间通过虚拟网桥进行通信,容器与宿主机的通信通常通过端口映射进行。

特性

  • 默认网络模式,适用于单机环境。
  • 容器间通过虚拟网桥通信。
  • 容器与宿主机的网络隔离,需要通过端口映射来访问容器。
  • 每个容器会自动分配一个私有 IP 地址,容器间使用该地址进行通信。

使用场景

  • 本地开发环境:在单台机器上运行多个容器,容器之间需要相互通信。
  • 小型项目:适合小型的单机部署,无需跨主机通信。

创建和使用示例

docker run -d --name my_container --network bridge nginx

查看桥接网络

docker network inspect bridge

Host 网络模式

host 网络模式下,容器与宿主机共享网络堆栈,容器直接使用宿主机的 IP 地址和端口。
这种模式下容器与宿主机之间没有网络隔离,容器的端口直接映射到宿主机的端口。

特性

  • 容器与宿主机共享网络堆栈,因此没有网络隔离。
  • 高效,容器和宿主机之间的网络性能较好。
  • 适用于需要高性能网络通信的容器。

使用场景

  • 高性能要求的应用:例如需要较低延迟和较高吞吐量的网络应用。
  • 日志处理、数据流处理:当容器需要大量与宿主机进行网络交互时,使用 host 网络可以避免 Docker 网络的额外开销。

创建和使用示例

docker run -d --name my_container --network host nginx

None 网络模式

none 网络模式下,容器没有网络接口,也就是说,容器与宿主机或其他容器无法通信。
该模式下容器会被完全隔离,不会自动分配 IP 地址。

特性

  • 容器没有任何网络连接。
  • 适用于需要完全隔离的容器,或者需要容器手动配置网络的场景。
  • 没有端口映射和通信能力,所有的网络功能都需要通过其他方式手动配置。

使用场景

  • 高度安全的环境:例如,需要完全隔离的容器,不允许容器与外界网络通信。
  • 需要自定义网络配置的容器:在一些特殊场景下,容器的网络配置需要完全由用户手动控制。

创建和使用示例

docker run -d --name my_container --network none nginx

Container 网络模式

container 模式允许一个容器共享另一个容器的网络命名空间。
容器之间不仅共享 IP 地址,还共享端口空间和网络接口。换句话说,它们会“合并”成一个网络堆栈。

特性

  • 容器共享相同的网络命名空间,包括 IP 地址和端口。
  • 容器之间的通信更为紧密,适合需要直接共享网络堆栈的场景。
  • 适合将多个容器作为单一单元进行管理和配置。

使用场景

  • 密切耦合的容器:当你有多个紧密耦合的容器,它们需要直接共享网络时,例如一个容器作为代理服务,另一个容器提供业务逻辑,容器之间需要共享 IP 地址。

创建和使用示例

# 运行第一个容器
docker run -d --name container1 nginx# 运行第二个容器,并让其共享第一个容器的网络
docker run -d --name container2 --network container:container1 nginx

Overlay 网络模式

overlay 网络模式用于跨多个 Docker 主机的容器之间通信。它通过 Docker Swarm 或 Kubernetes 等集群工具来实现容器跨主机的通信。
使用 overlay 网络时,Docker 会在容器之间创建一个虚拟网络,容器间的通信不受物理主机限制。

特性

  • 支持容器跨多个 Docker 主机通信。
  • 必须在 Swarm 模式下创建和使用。
  • 容器间的通信通过虚拟 IP 地址进行,外部网络无法直接访问容器,需使用负载均衡或端口映射。

使用场景

  • 分布式应用和微服务:适用于分布式架构,尤其是微服务应用,容器可能部署在不同的物理主机上。
  • 跨主机的容器通信:当你的应用需要跨多个物理主机进行容器间的通信时,overlay 网络是最佳选择。

创建和使用示例

# 创建一个 overlay 网络
docker network create -d overlay my_overlay_network# 在两个不同的主机上分别启动容器,并连接到 overlay 网络
docker service create --name service1 --network my_overlay_network my_image
docker service create --name service2 --network my_overlay_network my_image

Macvlan 网络模式

macvlan 网络模式使容器可以拥有自己的 MAC 地址,容器就像物理主机一样在网络中进行通信。
容器具有直接的物理网络访问能力,可以进行网络广播等操作。

特性

  • 容器拥有独立的 MAC 地址,容器可以直接与宿主机网络进行通信。
  • 容器与宿主机网络隔离,容器之间的通信也通过 macvlan 网络进行。
  • 容器能与外部物理网络进行通信,非常适合需要容器和物理网络无缝连接的场景。

使用场景

  • 需要容器和物理网络直接通信的场景:例如,需要容器作为网络设备或需要处理广播流量的场景。
  • 在大型企业中运行大量容器,需要每个容器都能在物理网络上独立存在时使用 macvlan

创建和使用示例

# 创建一个 macvlan 网络
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 my_macvlan_network# 运行一个容器并连接到 macvlan 网络
docker run -d --name my_container --network my_macvlan_network my_image

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本)

ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本) code review! 参考笔记 1.ROS基本框架1——编写简单的发布者和订阅者(C++和Python版本) 2.ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本) 文章目录 ROS基本框架2——在ROS开发中创建并使用自定义…

实例讲解MATLAB绘图坐标轴标签旋转

在进行绘图时需要在图片上添加上做标轴的标签,但是当数据量比较多时,例如一天24小时的数据,这时把每个小时显示在左边轴的标签上,文字内容放不下,因此需要将坐标轴标签旋转一定的角度,这样可以更好在图形上…

Spark 内存管理机制

Spark 内存管理 堆内内存和堆外内存 作为一个 JVM 进程,Executor 的内存管理建立在 JVM(最小为六十四分之一,最大为四分之一)的内存管理之上,此外spark还引入了堆外内存(不在JVM中的内存),在spark中是指不…

为什么爱用低秩矩阵

目录 为什么爱用低秩矩阵 一、定义与性质 二、区别与例子 为什么爱用低秩矩阵 我们更多地提及低秩分解而非满秩分解,主要是因为低秩分解在数据压缩、噪声去除、模型简化和特征提取等方面具有显著的优势。而满秩分解虽然能够保持数据的完整性,但在实际应用中的场景较为有限…

Dify+Docker

1. 获取代码 直接下载 (1)访问 langgenius/dify: Dify is an open-source LLM app development platform. Difys intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more, …

Android Studio的AI工具插件使用介绍

Android Studio的AI工具插件使用介绍 一、前言 Android Studio 的 AI 工具插件具有诸多重要作用,以下是一些常见的方面: 代码生成与自动补全 代码优化与重构 代码解读 学习与知识获取 智能搜索与资源推荐实际使用中可以添加注释,解读某段代…

DOCKER学习总结

这里写目录标题 一、Docker安装1.1 在线安装1.2 离线安装安装配置启动服务 1.3 配置镜像1.4 Docker启动相关命令 二、Docker三大核心概念2.1 镜像2.2 容器2.3 仓库2.3.1 公有仓库2.3.2 私有仓库 二、容器与虚拟机比较 一、Docker安装 1.1 在线安装 查看是否安装dockeryum lis…

深入浅出体验AI生图产品Dall-E

DALL-E是由OpenAI开发的一种革命性的AI图像生成工具,能够根据文本描述生成图像。它的名字灵感来源于著名画家萨尔瓦多达利(Salvador Dal)和皮克斯动画电影中的角色瓦力(WALL-E),这暗示了其在艺术创造力与技…

OpenCV_Code_LOG

孔洞填充 void fillHole(const Mat srcBw, Mat &dstBw) {Size m_Size srcBw.size();Mat TempMat::zeros(m_Size.height2,m_Size.width2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1, m_Size.height 1), Range(1, m_Size.width 1)));cv::floodFill(Temp, Point(…

YOLOv11改进,YOLOv11添加SAConv可切换空洞卷积,二次创新C3k2结构

摘要 作者提出的技术结合了递归特征金字塔和可切换空洞卷积,通过强化多尺度特征学习和自适应的空洞卷积,显著提升了目标检测的效果。 理论介绍 空洞卷积(Atrous Convolution)是一种可以在卷积操作中插入“空洞”来扩大感受野的技术,更有效地捕捉到图像中的大范围上下文…

2024信创数据库TOP30之华为Gauss DB

近日,由DBC联合CIW/CIS共同发布的“2024信创数据库TOP30”榜单正式揭晓,汇聚了国内顶尖的数据库企业及其产品,成为展示中国信创领域技术实力与发展潜力的重要平台。在这份榜单中,华为的GaussDB凭借其卓越的技术实力、广泛的行业应…

【Spring源码核心篇-07】spring事物传播机制的流程和原理

Spring源码核心篇整体栏目 内容链接地址【一】Spring的bean的生命周期https://zhenghuisheng.blog.csdn.net/article/details/143441012【二】深入理解spring的依赖注入和属性填充https://zhenghuisheng.blog.csdn.net/article/details/143854482【三】精通spring的aop的底层原…

Redis实现限量优惠券的秒杀

核心&#xff1a;避免超卖问题&#xff0c;保证一人一单 业务逻辑 代码步骤分析 全部代码 Service public class VoucherOrderServiceImpl extends ServiceImpl<VoucherOrderMapper, VoucherOrder> implements IVoucherOrderService {Resourceprivate ISeckillVoucher…

.NET8/.NETCore 依赖注入:自动注入项目中所有接口和自定义类

.NET8/.NETCore 依赖接口注入&#xff1a;自动注入项目中所有接口和自定义类 目录 自定义依赖接口扩展类&#xff1a;HostExtensions AddInjectionServices方法GlobalAssemblies 全局静态类测试 自定义依赖接口 需要依赖注入的类必须实现以下接口。 C# /// <summary>…

搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档

搭建一个基于Web的文档管理系统&#xff0c;用于存储、共享和协作编辑文档 本项目采用以下架构&#xff1a; NFS服务器: 负责存储文档资料。Web服务器: 负责提供文档访问和编辑功能。SELinux: 负责权限控制&#xff0c;确保文档安全。Git服务器: 负责存储文档版本历史&#x…

gitee:创建仓库,存入本地文件至仓库

一、git下载 git:下载与安装-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/144107485?sharetypeblogdetail&sharerId144107485&sharereferPC&sharesourceweixin_46001736&spm1011.2480.3001.8118 二、创建仓库 1、主页面->右上角新增…

计算机网络 —— HTTP 协议(详解)

前一篇文章&#xff1a;网页版五子棋—— WebSocket 协议_网页可以实现websocket吗-CSDN博客 目录 前言 一、HTTP 协议简介 二、HTTP 协议格式 1.抓包工具的使用 2.抓包工具的原理 3.抓包结果 4.HTTP协议格式总结 三、HTTP 请求 1. URL &#xff08;1&#xff09;UR…

关于单片机的原理与应用!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///目前正在学习C&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于单片…

爬虫专栏第一篇:深入探索爬虫世界:基础原理、类型特点与规范要点全解析

本专栏会对爬虫进行从0开始的讲解&#xff0c;每一步都十分的细致&#xff0c;如果你感兴趣希望多多点赞收藏关注支持 简介&#xff1a;文章对爬虫展开多方面剖析。起始于爬虫的基本概念&#xff0c;即依特定规则在网络抓取信息的程序或脚本&#xff0c;在搜索引擎信息提取上作…

rabbitmq原理及命令

目录 一、RabbitMQ原理1、交换机&#xff08;Exchange&#xff09;fanoutdirecttopicheaders&#xff08;很少用到&#xff09; 2、队列Queue3、Virtual Hosts4、基础对象 二、RabbitMQ的一些基本操作:1、用户管理2、用户角色3、vhost4、开启web管理接口5、批量删除队列 一、Ra…