什么是 none 网络模式
--network none 让容器只保留回环接口 lo,不创建 eth0,也没有默认路由:容器与外部网络完全隔离,DNS 解析同样不可用。它适合纯计算、离线批处理,以及需要手工搭建网络命名空间的场景。
基本信息
| 语法 | docker run --network none <image> |
|---|---|
| 可见接口 | 仅 lo(127.0.0.1) |
| DNS | 不可用 |
| 适用平台 | Linux / Windows / macOS 上的 Docker Engine |
| 动态接入 | docker network connect 可在容器运行时接回网络 |
典型使用场景
- 离线数据处理:只做本地文件转换,不希望任务有任何外联
- 密钥运算类工作负载,用断网作为额外的泄露防护
- 网络安全实验:先断开默认网络,再按需接入被测网络
- 性能基准测试:排除网络变量,只度量 CPU、内存与磁盘
- 作为手工配置 veth、路由的容器载体,调试网络命名空间
- 构建机上的离线签名与打包步骤,全程不接触网络
验证与动态接入
验证与动态接入
docker run --rm --network none alpine ip addr # 只应看到 lo,没有 eth0
docker run --rm --network none alpine ping -c1 127.0.0.1 # 回环仍然可用
docker run -d --name isolated --network none alpine sleep 3600
docker network connect bridge isolated # 需要联网时再接入
docker exec isolated ip addr show # 确认新增了接口隔离表现对照
| 关注点 | none 模式表现 | 说明 |
|---|---|---|
| 对外访问 | 不可达 | 没有路由与网关 |
| 容器间通信 | 不可达 | 不加入任何 Docker 网络 |
| 回环通信 | 可用 | 127.0.0.1 属于容器自身 |
| 域名解析 | 不可用 | 没有可用解析器与网络 |
none 只切断网络接口,容器仍能读写挂载进来的卷与宿主路径;需要连存储一起隔离时,要另外控制挂载。
把采集、上报类容器误设为 none,会让数据上报静默失败,表现为容器正常运行却没有任何数据,上线前确认网络策略。
none 模式没有对外接口,但容器仍继承宿主内核与挂载能力;把它当成数据不出容器的保险时,要同时检查卷与宿主挂载路径,否则文件照样会被写出去。
诊断容器内部网络时常用组合是:先以 none 启动避免干扰,再在容器里手工起服务只监听回环,最后用同一容器内的客户端验证逻辑,排除外部链路因素。