<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Network Mode :: Ay Docs</title>
    <link>https://ops.docs.72602.space/using/container/docker_network/index.html</link>
    <description>Docker的网络模式决定了容器如何与宿主机、其他容器以及外部网络进行通信。&#xA;Docker主要提供了以下五种网络模式，默认创建的是 bridge 模式。&#xA;1. Bridge 模式 这是 默认 的网络模式。当你创建一个容器而不指定网络时，它就会连接到这个默认的 bridge 网络（名为 bridge）。&#xA;工作原理：Docker守护进程会创建一个名为 docker0 的虚拟网桥，它相当于一个虚拟交换机。所有使用该模式的容器都会通过一个虚拟网卡（veth pair）连接到这个网桥上。Docker会为每个容器分配一个IP地址，并配置其网关为 docker0 的地址。 通信方式： 容器间通信：在同一个自定义桥接网络下的容器，可以通过容器名（Container Name）直接通信（Docker内嵌了DNS）。但在默认的 bridge 网络下，容器只能通过IP地址通信。 访问外部网络：容器数据包通过 docker0 网桥，再经过宿主机的IPtables进行NAT转换，使用宿主机的IP访问外网。 从外部访问容器：需要做端口映射，例如 -p 8080:80，将宿主机的8080端口映射到容器的80端口。 优劣分析 优点： 隔离性：容器拥有独立的网络命名空间，与宿主机和其他网络隔离，安全性较好。 端口管理灵活：通过端口映射，可以灵活地管理哪些宿主机端口暴露给外部。 通用性：是最常用、最通用的模式，适合大多数应用场景。 缺点： 性能开销：相比 host 模式，多了一层网络桥接和NAT，性能有轻微损失。 复杂度：在默认桥接网络中，容器间通信需要使用IP，不如自定义网络方便。 使用场景：绝大多数需要网络隔离的独立应用，例如Web后端服务、数据库等。&#xA;命令示例：&#xA;# 使用默认bridge网络（不推荐用于多容器应用） docker run -d --name my-app -p 8080:80 nginx # 创建自定义bridge网络（推荐） docker network create my-network docker run -d --name app1 --network my-network my-app docker run -d --name app2 --network my-network another-app # 现在 app1 和 app2 可以通过容器名直接互相访问 2. Host 模式 在这种模式下，容器不会虚拟出自己的网卡，也不会分配独立的IP，而是直接使用宿主机的IP和端口。</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate></lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/using/container/docker_network/index.xml" rel="self" type="application/rss+xml" />
  </channel>
</rss>