当前位置: 首页 > article >正文

docker有哪些网络模式

Docker 提供了多种网络模式(Networking Modes),每种模式都有其特定的用例和优缺点。以下是 Docker 的几种主要网络模式:

1. Bridge 网络(默认)

  • 描述:在这种模式下,Docker 创建了一个桥接网络(bridge),所有容器连接到这个网络并通过虚拟网桥进行通信。
  • 特点
    • 默认网络模式,适用于单机容器通信。
    • 容器通过桥接网络可以相互通信。
    • 每个容器都有一个虚拟网卡(veth)连接到桥接网络。
  • 用法
docker run -d --name container_name --network bridge image_name

2. Host 网络

  • 描述:在这种模式下,容器共享宿主机的网络命名空间。容器不会获得独立的网络栈,而是使用宿主机的网络栈。
  • 特点
    • 性能优于 bridge 网络模式,因为没有网络地址转换(NAT)。
    • 容器使用宿主机的 IP 地址和端口。
    • 容器无法使用自定义的端口映射。
  • 用法
docker run -d --name container_name --network host image_name

3. None 网络

  • 描述:在这种模式下,容器没有任何网络连接。它们只有一个 loopback 接口。
  • 特点
    • 容器没有网络接口,无法与外界通信。
    • 适用于需要完全自定义网络配置的场景。
  • 用法
docker run -d --name container_name --network none image_name

4. Container 网络

  • 描述:在这种模式下,容器共享另一个容器的网络命名空间。多个容器可以共享一个网络栈。
  • 特点
    • 容器共享 IP 地址和端口范围。
    • 适用于需要在多个容器间共享网络配置的场景。
  • 用法
docker run -d --name container_name --network container:another_container_name image_name

5. Overlay 网络

  • 描述:在这种模式下,Docker Swarm 使用 Overlay 网络跨多个 Docker 主机提供网络连接。
  • 特点
    • 用于跨多主机的容器通信。
    • 适用于 Swarm 集群或 Kubernetes 集群。
    • 提供集群间容器的安全通信。
  • 用法
docker network create -d overlay my_overlay_network
docker run -d --name container_name --network my_overlay_network image_name

6. Macvlan 网络

  • 描述:在这种模式下,Docker 将容器直接连接到物理网络,给每个容器分配一个 MAC 地址,使其在物理网络中像普通设备一样。
  • 特点
    • 容器可以直接与物理网络设备通信。
    • 适用于需要容器拥有独立 IP 地址的场景。
    • 容器可以通过网络交换机进行网络隔离。
  • 用法
sh
复制代码
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan_network
docker run -d --name container_name --network my_macvlan_network image_name

总结

  • Bridge 网络:适用于单机容器通信。
  • Host 网络:适用于需要高性能网络通信的场景。
  • None 网络:适用于完全自定义网络配置。
  • Container 网络:适用于多个容器共享网络配置。
  • Overlay 网络:适用于跨多主机的容器通信(Swarm/Kubernetes)。
  • Macvlan 网络:适用于容器直接连接到物理网络并拥有独立 IP 地址的场景。

根据具体的应用需求和网络拓扑,可以选择合适的 Docker 网络模式来配置和管理容器的网络通信。

4o


http://www.kler.cn/a/401817.html

相关文章:

  • 深入解析TK技术下视频音频不同步的成因与解决方案
  • C++为函数提供的型特性——缺省参数与函数重载
  • 优化 MFC CGridCtrl 的表格布局与功能
  • opencascade源码学习之HLRAlgo包 -HLRAlgo_Projector
  • AcWing 1234. 倍数问题(周二)
  • CC工具箱使用指南:【CAD导出界址点Excel】
  • 【计算机网络实验】之静态路由配置
  • 前端项目接入单元测试手册
  • 白蚁自动化监测系统的装置和优势
  • 【网络安全】(一) 0成本添加访问级监控
  • 【C/C++】随机数生成的现代化封装
  • 前端注册代码
  • C#获取视频第一帧_腾讯云媒体处理获取视频第一帧
  • C函数从lua中读取数据接口常用接口
  • kali搭建pikachu靶场
  • 论文翻译 | Learning to Transfer Prompts for Text Generation
  • 统信操作系统离线安装JDK、Nginx、elasticsearch、kibana、ik、pinyin
  • k8s篇之流量转发走向
  • 阿里云ACK容器如何配置pod分散在集群的不同节点上
  • Vue 3与TypeScript集成指南:构建类型安全的前端应用
  • 高阶C语言之五:(数据)文件
  • 【Java】ArrayList与LinkedList详解!!!
  • 一种由于吸入硅酸盐粉尘而引起的肺部疾病:pneumonoultramicroscopicsilicovolcanoconiosis
  • 【java-ffmpeg】java 内存测试和集成
  • 第二十五章 TCP 客户端 服务器通信 - TCP 设备的 READ 命令
  • 打开AI的黑盒子——机器学习可解释性!