Docker Swarm节点间安全通信需启用TLS加密与Overlay网络加密。默认启用TLS,自动签发CA及节点证书;Overlay网络需添加--opt encrypted参数启用AES加密;配合令牌管理、端口限制和审计日志实现全链路安全。

要让 Docker 群集节点之间安全通信,核心是启用并正确配置 Swarm 模式下的 Overlay 网络 和 TLS 加密通信。Docker Swarm 默认就强制使用 TLS(双向证书认证)进行节点间通信,无需额外开启加密开关,但必须确保证书体系完整、网络策略合理、节点身份可信。
确保 Swarm 初始化时启用 TLS(默认已启用)
Docker 1.12+ 版本起,Swarm 模式默认启用 TLS 加密通信。初始化 Manager 节点时,Docker 自动为集群生成 CA 证书、Manager/Worker 证书,并通过安全通道分发:
- 运行
docker swarm init --advertise-addr <MANAGER_IP>后,Docker 自动创建/var/lib/docker/swarm/certs/目录,含ca.crt、node.crt、node.key等文件 - 所有后续
docker swarm join命令携带的 token 已签名加密,Worker 节点加入时会自动获取并验证证书链 - 节点间控制面通信(如 Raft 日志同步、任务调度)全程走 TLS 1.2+,端口为
2377(TCP)
配置安全的 Overlay 网络
Overlay 网络是跨节点容器通信的载体,其底层基于 VXLAN 封装,并默认启用 AES 加密(自 Docker 17.06 起):
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 创建可接入的加密 Overlay 网络:
docker network create -d overlay --opt encrypted --attachable my-secure-net -
--opt encrypted启用 IPsec/AES-128-GCM 加密,防止流量在物理网络中被嗅探 -
--attachable允许独立容器(非 service)手动接入,便于调试或临时任务 - 服务部署时显式指定该网络:
docker service create --network my-secure-net --name api nginx
限制节点准入与通信范围
仅靠加密不够,还需控制谁可以加入集群、哪些节点能互通:
- 使用 管理令牌(manager token) 和 工作令牌(worker token) 分离权限:Manager 节点只能用 manager token 加入,Worker 节点无法提升权限
- 定期轮换 token(尤其在节点失陷后):
docker swarm join-token --rotate worker或manager - 通过防火墙限制
2377(Swarm 控制)、7946(节点发现)、4789(VXLAN 数据)端口仅对可信子网开放 - 禁用不安全的
host或bridge模式跨节点暴露,避免绕过 Overlay 加密
启用集群日志与审计跟踪
安全通信不仅指加密传输,还包括行为可追溯:
- 启用 Swarm 操作审计日志:
在/etc/docker/daemon.json中添加:{"debug": true, "log-level": "info", "experimental": true},再配合journalctl -u docker查看关键事件 - 使用
docker node ls和docker node inspect <NODE_ID>定期核验节点状态与证书有效期 - 对敏感服务设置
--constraint 'node.role == manager'等标签约束,避免 Worker 节点运行核心组件

















