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应用 高性能网络需求、监控代理 离线计算、高安全沙箱
相关推荐
Strugglingler2 小时前
Docker入门
docker·容器
线束线缆组件品替网2 小时前
Amphenol CAT6A网线RJE1Y36915162401线束组件深度解析
网络·数码相机·智能路由器·电脑·电视盒子·pcb工艺
2301_旺仔2 小时前
【Nginx进程管理】
linux·服务器·网络
舒一笑3 小时前
Docker Compose 挂载 Nginx 配置的正确姿势(90%的人都踩过这个坑)
运维·docker·容器
二等饼干~za8986683 小时前
云罗 GEO 优化系统源码厂家测评报告
大数据·网络·数据库·人工智能·django
航Hang*3 小时前
Windows Server 配置与管理——第10章:配置FTP服务器
运维·服务器·网络·windows·学习·vmware
手揽回忆怎么睡3 小时前
win11使用Docker隔离comfyui,避免每次python地狱依赖
docker
kevin_水滴石穿3 小时前
Docker 运行一段时间后,/var/lib/docker/overlay2目录占用空间过大的处理方案
运维·docker·容器
牛奶咖啡133 小时前
Docker容器实践——docker的安装与加速器配置
docker·docker与虚拟机对比·docker是什么·docker容器的发展方向·docker容器的两种安装方法·docker配置国内加速器·普通用户添加docker用户组