none 网络模式是什么
none 模式下容器只保留一个回环接口,不接入任何网络:没有网卡、没有默认网关、也没有解析配置,因此外界访问不到它,它也访问不到外界。这不是“没加载网络驱动”,而是刻意不挂任何网络端点,属于隔离最彻底、诊断也最简单的一档——没有网卡就不存在网络类问题。它适合离线计算、安全沙箱和必须防止数据外送的场景,需要临时联网时再给运行中的容器挂上网络即可,不必重建。
基本信息
| 启用方式 | docker run --network none 镜像 |
|---|---|
| 容器内现象 | 只有回环接口,外网与容器网络均不可达 |
| 地址与解析 | 没有网络地址与解析配置,按名字访问其他容器也做不到 |
| 临时联网 | docker network connect 网络 容器,运行中的容器也能挂接 |
| 隔离级别 | 在常见模式中最高,适合强隔离与离线任务 |
| 注意 | 隔离的是网络,文件系统与内核仍然与其他容器共享 |
典型使用场景
- 离线数据处理:输入输出都来自挂载的卷,不需要网络
- 安全沙箱:分析不可信样本,防止木马回连与数据外送
- 合规要求明确禁止外联的任务,用模式强制约束而不是靠自觉
- 排查时排除网络干扰:确认问题与网络无关
- 作为隔离基线做对照测试,和联网环境比较行为差异
使用示例
使用示例
docker run --rm --network none alpine ip addr # 只看得到回环接口
docker run --rm --network none alpine ping -c1 8.8.8.8 # 预期失败:没有出口
docker run -d --name job --network none alpine sleep 3600 # 起一个离线任务容器
docker network connect bridge job # 需要时给运行中的容器临时接网络
docker network disconnect bridge job # 用完再断开,恢复离线状态
docker network inspect none -f '{{json .Containers}}' # 看哪些容器用了这个模式网络模式对照
| 模式 | 连通性 | 典型用途 | 风险 |
|---|---|---|---|
| none | 只有回环接口 | 离线计算、强隔离任务 | 需要联网的进程无法启动 |
| bridge(默认) | 出网走地址转换,容器间名字不通 | 单机简单运行 | 名字解析不可用 |
| host | 直接共享宿主网络 | 低延迟与高性能场景 | 端口冲突、隔离性弱 |
| 自定义网络 | 内置名字解析 | 多容器协作 | 需管理网段与清理 |
none 不是不加载网络能力,而是不挂任何网络端点:排查时先看容器的网络设置,确认它到底挂在哪个网络上。
运行中挂接网络不会让已失败的首连自动恢复:应用若没有重试逻辑,需要重启进程或触发重连。