全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 5 分钟 ✍️ juanwangdev

网络隔离与安全策略

网络隔离是容器安全的基础,下面介绍 Docker 网络隔离方法。

网络隔离原理

Bash
# 不同网络的容器默认隔离
docker network create frontend
docker network create backend

docker run -d --name web --network frontend nginx
docker run -d --name app --network backend my-app

# web 无法访问 app(不在同一网络)

内部网络

Bash
# 创建内部网络(无外网访问)
docker network create \
  --driver bridge \
  --internal \
  internal-net

# 容器可互相访问,但无法访问外部
docker run -d --network internal-net my-db

--internal 阻止容器访问外部网络,仅允许内部通信。

网络策略

多网络隔离

YAML
version: '3.8'

services:
  nginx:
    image: nginx
    networks:
      - public
      - internal
  
  app:
    image: my-app
    networks:
      - internal
      - backend
  
  db:
    image: postgres
    networks:
      - backend  # 仅 app 可访问

networks:
  public:
  internal:
    internal: true
  backend:
    internal: true

网络访问控制

Bash
# 仅允许特定服务加入网络
docker network create \
  --driver bridge \
  --opt com.docker.network.bridge.enable_icc=false \
  restricted

# 手动连接网络
docker network connect restricted db

防火墙规则

Bash
# iptables 规则限制容器间通信
sudo iptables -I DOCKER-USER -i docker0 -o docker0 \
  -s 172.17.0.0/16 -d 172.17.0.5 -j DROP

# 仅允许特定 IP 段
sudo iptables -I DOCKER-USER -i docker0 \
  -s 172.17.0.0/24 -j ACCEPT

端口暴露控制

YAML
# 仅绑定本地 IP
services:
  db:
    image: postgres
    ports:
      - "127.0.0.1:5432:5432"  # 仅本地访问

# 不暴露端口(仅内部网络)
services:
  db:
    image: postgres
    # 不配置 ports

TLS 加密通信

Bash
# Docker Daemon TLS
# /etc/docker/daemon.json
{
  "tls": true,
  "tlscacert": "/etc/docker/ca.pem",
  "tlscert": "/etc/docker/server-cert.pem",
  "tlskey": "/etc/docker/server-key.pem"
}

安全最佳实践

  • 使用自定义网络隔离不同服务层级
  • 数据库等敏感服务使用内部网络(internal: true
  • 端口绑定 127.0.0.1 限制外部访问
  • 生产环境启用 Swarm 并使用 overlay 加密
  • 定期审计网络配置和 iptables 规则

要点总结

  • 不同网络的容器默认隔离,实现基本网络隔离
  • --internal 创建内部网络,阻止访问外部
  • 多网络策略实现服务分层(public/internal/backend)
  • iptables 规则精细控制容器间通信
  • 敏感服务端口绑定 127.0.0.1,不暴露到公网

📝 发现内容有误?点击此处直接编辑

← 上一篇 容器 DNS 与服务发现
下一篇 → Tmpfs 临时存储
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库