docker network 创建 host 和 none 网络模式

docker network 创建 hostnone 网络模式与创建普通的 bridge 网络略有不同,因为它们的机制比较特殊。

以下是具体的命令和注意事项:

1. 创建 Host 模式网络

核心概念
host 模式并不是创建一个虚拟的"网桥",而是让容器直接使用宿主机的网络栈。容器没有独立的 IP,它共享宿主机的 IP 和端口。

命令:

bash 复制代码
docker network create -d host my-host-net
  • -d host:指定驱动为 host。
  • my-host-net:网络名称(你可以随便起,但通常没必要,因为 host 模式行为是固定的)。

⚠️ 重要限制:

  • 端口映射无效 :在 host模式下,-p 8080:80 这种参数完全失效。如果容器监听 80 端口,宿主机必须确保 80 端口未被占用。
  • 隔离性差: 容器看到的网络接口就是宿主机的接口。
  • 通常不需要显式创建 :Docker 默认内置了一个名为 host的网络。你通常可以直接在运行容器时使用 --network host a,而不需要手动 create。手动创建的主要目的是为了在某些编排工具中统一引用名称。

使用示例:

bash 复制代码
# 直接运行一个使用 host网络的容器
docker run -d --network host nginx
# 此时访问宿主机的 IP + 80端口即可看到 Nginx

2. 创建 None 模式网络

核心概念
none 模式表示容器没有任何网络连接 。它只有一个本地回环接口 (lo),无法访问外部网络,其他容器也无法访问它。适用于高安全需求或批处理任务。

命令:

bash 复制代码
docker network create -d none my-none-net
  • -d none:指定驱动为 none。

⚠️ 重要限制:

  • 完全隔离 :容器内无法 ping 通百度,也无法 apt-get install
  • 通常不需要显式创建 :Docker 默认内置了一个名为 none 的网络。

使用示例:

bash 复制代码
# 运行一个完全断网的容器
docker run -d --network none alpine sleep 3600

3. 为什么通常不建议手动 create host/none?

Docker 在安装时会自动创建三个默认网络:

  1. bridge (默认)
  2. host
  3. none

你可以随时通过 docker network ls 看到它们。

手动创建 hostnone 网络的唯一场景是:

你在使用 Docker Compose 或 Kubernetes 等编排工具,并且希望给这个特殊的网络起一个自定义的名字 以便在配置文件中引用,或者为了保持配置的一致性(所有网络都通过 create 生成)。

对于绝大多数日常使用:

  • 如果想用 Host 模式:直接 docker run --network host ...
  • 如果想用 None 模式:直接 docker run --network none ...
  • 如果想用自定义 Bridge 模式(最常用):才需要 docker network create -d bridge ...

4. 总结对比表

特性 Bridge (默认/自定义) Host None
创建命令 docker network create -d bridge mynet docker network create -d host mynet docker network create -d none mynet
IP 地址 有独立内部 IP (如 172.18.0.2) ,共用宿主机 IP ,仅 lo (127.0.0.1)
端口映射 (-p) ✅ 支持 不支持 (直接占用宿主机端口) ❌ 无意义
网络隔离 中等 (与其他容器隔离) 无 (与宿主机完全共享) 最高 (完全断网)
典型用途 微服务通信、Web应用 高性能网络需求、监控代理 离线计算、高安全沙箱
相关推荐
Empty-Filled1 分钟前
AI Agent 测试入门:从回答问题到执行任务
网络·人工智能
Yupureki15 分钟前
《Linux网络编程》4.应用层HTTP协议
linux·服务器·c语言·网络·c++·http
m0_7381207218 分钟前
网路安全编程——熟悉并使用Scapy简单实现捕捉主流邮箱协议(SMTP、POP3和IMAP) 的身份凭证
网络·python·网络协议·tcp/ip·安全·网络安全
孙同学_23 分钟前
【Linux篇】网络层与数据链路层详解
linux·网络·智能路由器
youngerwang27 分钟前
【智能体互联网的基石:AI操作系统架构、Agent通信协议与演进路径综述】
网络·ai智能体·aios
切糕师学AI29 分钟前
Docker CE 与 Docker Compose 详解:容器化引擎与多容器编排
docker·容器
咖喱o37 分钟前
网络-堆叠
linux·运维·服务器·网络
红球yyds43 分钟前
Kubernetes 简介及部署方法
云原生·容器·kubernetes
clear sky .1 小时前
【TCP】TCP数据粘包/分包问题
java·服务器·网络
ezreal_pan1 小时前
Docker部署Kafka持久化遇到的各种问题及解决方案
docker·容器·kafka